KiMoGiGi 技术文集
不在乎选择什么,而在乎坚持多久……
IT博客
首页
联系
聚合
管理
185 Posts :: 14 Stories :: 48 Comments :: 0 Trackbacks
公告
KiMoGiGi 技术文集
注:本Blog技术文章
除特别说明外
全部均来源Web和转载
最近正在看的
(图片来源
China-Pub
):
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(10)
给我留言
查看公开留言
查看私人留言
随笔分类
(219)
AJAX.NET(5)
ASP.NET(38)
Basic(7)
C# / Winforms(64)
Enterprise Library(3)
Java(1)
JavaScript(35)
Python(4)
Web小技巧(19)
WPF/SilverLight(4)
工具插件(6)
数据库相关(7)
经验之谈(24)
网络编程(2)
随笔档案
(185)
2011年3月 (1)
2010年11月 (1)
2010年8月 (1)
2010年6月 (2)
2009年10月 (1)
2009年9月 (9)
2009年7月 (1)
2009年5月 (2)
2009年3月 (6)
2009年2月 (3)
2009年1月 (7)
2008年12月 (6)
2008年11月 (5)
2008年10月 (3)
2008年9月 (1)
2008年8月 (5)
2008年7月 (10)
2008年6月 (9)
2008年5月 (6)
2008年4月 (5)
2008年3月 (6)
2008年2月 (1)
2008年1月 (4)
2007年12月 (11)
2007年11月 (11)
2007年10月 (2)
2007年8月 (1)
2007年4月 (4)
2007年3月 (11)
2007年2月 (3)
2007年1月 (10)
2006年12月 (12)
2006年11月 (6)
2006年10月 (3)
2006年8月 (3)
2006年7月 (5)
2006年6月 (8)
文章分类
(25)
ASP.NET(8)
Basic Knowledge(1)
C#(4)
JavaScript
Web设计
开源框架 - NHibernate
数据库相关
经验之谈
英文文章翻译(12)
文章档案
(14)
2008年8月 (1)
2008年6月 (2)
2007年12月 (4)
2007年11月 (7)
收藏夹
JavaScript
Friend 's Blog
My Step
映画记录
技术崇拜
A JavaScript Fancier
Dflying
dudu
First we try, then we trust
lifesinger
淘宝网UED部-Web前端
TerryLee's Tech Space
听棠.NET
周爱民
职业生涯顾问Leo的专栏
鸟食轩
技術網站
C# Corner
codeplex
CSDN
博客園
数据结构
點部落
搜索
JScript中的undefined和"undefined"
From :
鸟食轩
JScript中用于表示未定义的
undefined
标识符到底是表示什么未定义?它和
"undefined"
(包括"在内)又有什么区别和联系呢?为什么有的时候可以使用
undefined
来和变量做比较,而有的时候又不行呢?
underfined
和
"undefined"
的区别大家一眼就能看出来。在一般的认知下,我们认为
undefined
是JScript提供的一个"关键字",而
"undefined"
却毫无悬念的就是一个字符串,只是引号内的内容长得和
undefined
一个样。
undefined
和
"undefined"
的区别虽然是十分明显的,但它们的联系也是紧密的。
仔细阅读JScript手册,其实这个underfined是一个"已定义"的Global值,而不是它的字面意义所表达的未定义。我们看下面这个代码示例,很有趣:
<
script
language
="javascript"
>
alert(undefined);
alert(variable);
</
script
>
执行的结果是:
我们稍微修改一下上面的代码,添加一个typeof调用来看看:
<
script
language
="javascript"
>
alert(
typeof
undefined);
alert(
typeof
variable);
</
script
>
这下结果应该是什么呢?显示
"object"
和
"undefined"
吗?当然不是了,两个alert调用都将显示
"undefined"
。
所以
undefined
是脚本引擎定义的一个常量,它在脚本引擎初始化完毕后存在。它的实际作用是用
来表示一个已定义的变量的为初始化状态(uninitialized)
,比如var i;,这时这个i的值就是
undefined
,而i是实实在在define了的,只是未初始化。这时我们就可以写这样的表达式来对i做判断,比如if ( i ==
undefined
)。如果从未在代码中出现过的变量被使用,这时的未定义的概念就是不
undefined
所描述的未初始化了,而是说明该变量完全未被登记到脚本引擎的上下文中。使用类似if ( abc ==
undefined
)的语句,将得到类似上图中的第二个错误提示。
在实际使用中,如果使用typeof来判断变量是否未定义,是可以完全兼容
未定义(undefined)
和
未初始化(uninitialized)
两种情况的,只是很多时我不喜欢使用 if ( typeof xxx ==
'undefined'
) 这样的写法,因为literal的字符串容易拼写错误,对用习惯了的强类型语言的角度来看也显得不专业。
posted on 2006-12-03 01:04
KiMoGiGi
阅读(300)
评论(0)
编辑
收藏
引用
所属分类:
JavaScript
只有注册用户
登录
后才能发表评论。
Powered by:
IT博客
Copyright © KiMoGiGi