JavaScript undefined及null区别实例解析
在JavaScript中,将一个变量赋值为undefined或null,老实说,几乎没区别。
vara=undefined;
vara=null;
上面代码中,a变量分别被赋值为undefined和null,这两种写法几乎等价。
undefined和null在if语句中,都会被自动转为false,相等运算符甚至直接报告两者相等。
if(!undefined)
console.log('undefinedisfalse');
//undefinedisfalseif(!null)
console.log('nullisfalse');
//nullisfalseundefined==null
//true
上面代码说明,两者的行为是何等相似!
既然undefined和null的含义与用法都差不多,为什么要同时设置两个这样的值,这不是无端增加JavaScript的复杂度,令初学者困扰吗?Google公司开发的JavaScript语言的替代品Dart语言,就明确规定只有null,没有undefined!
Undefined
Undefined类型只有一个值,即undefined。
声明了变量,但未进行初始化时,这个变量的值就是undefined,例如:
varmessage;
alert(message==undefined);//true
字面量undefined的主要目的是用于比较,而ECMAScript3.0之前的版本中并没有规定这个值。引入这个值是为了正式区分空对象指针与未经初始化的变量。
Null
Null类型是第二个只有一个值的类型,即null。
从逻辑角度来看,null表示一个空对象指针,因此,当使用typeof操作符检测null值时,会返回“object”,如下所示:
varcar=null;
alert(typeofcar);//"object"
如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null,而不是其他值,这样一来只要直接检查null值就可以知道该变量是否保存了一个对象的引用,例如:
if(car!=null){
dosomthing
}
实际上,undefined值是派生自null值的,因为他们在执行相等性测试(==)时要返回true
alert(null==undefined)//true
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。