JavaScript中的NULL和Undefined类型
现在是上班时间,可是最近系统升级,没有任何开发的任务,所以倒是可以自己看看JAVAScript。一直以来都觉得自己的JS实在是弱。确实也是如此,今天看到了JS的数据类型这一小点,觉得比较有用。特别是那个Undefined类型,自己之前对其理解真是少之又少,现在至少理解为什么之前做的那个模块为什么未能凑效了。下面就胡乱涂鸦一下。先来介绍一下大家在JAVA中并不陌生的东西:null。
在JS中null是一个数据类型,它只有一个值,并且null在JS中是关键字,因此,我们定义函数或是变量时,不能用null来做为他们的名称。如果变量为null,则说明变量为无值或是没有对象。也就是说此变量没有保存有有效的数,字符串,boolean,数组或是对象。由此我们想清空一个变量的内容时,我们可以给其赋上null值。还有值得注意的是,JS中的null和C,C++的null并不相同,JS的null并不等于0。更应该引起注意的是,JS中typeof运算符将报告null值为Object类型,而不是null类型(这是为了向下兼容)。
接着再来看看Undefined这个可爱的家伙。
在JS中,如何获得Undefined呢?这里在两种情况下,可以产生它,其一为:对象的属性并不存在,其二为,声明了变量,但是从不为其赋值。应该引起我们大家注意的是:不能通过与undefined做比较来判断一个变量是否存在。不过我们可以检查它的类型是否为“undefined”。注意,这里的undefined有个“”来包括着。下面举例说明:如果我们想测试是否已经声明了变量x;
// 这种方法不起作用
if (x == undefined)
// 作某些操作
// 这个方法同样不起作用- 必须检查
// 字符串 "undefined"
if (typeof(x) == undefined)
// 作某些操作
// 这个方法有效
if (typeof(x) == "undefined")
// 作某些操作
考虑将 undefined 值与null做比较。
someObject.prop == null;
如下情况时,比较的结果为 true,
如果属性 someObject.prop 包含 null 值,
如果属性 someObject.prop 不存在。
要检查一个对象属性是否存在,可以使用新的 in 运算符:
if ("prop" in someObject)
// someObject 有属性 'prop'
页:
[1]