JavaScript null 和 undefined
null
在JavaScript中,null表示对一个空对象的引用。
console.log(typeof null); //object
如果我们声明了一个变量,并且将来要用这个变量来引用对象时,通常我们会初始化其为null。
undefined
在JavaScript中,undefined是一种基本数据类型。用来表示一个已声明但未赋值,或根本就不存在的“变量”。
var a; console.log(typeof a); //undefined console.log(typeof b); //undefined
这里要说一下,算了还是直接看代码吧。。。
var a; console.log(a); //undefined console.log(b); //ReferenceError: b is not defined
就是说,如果一个变量声明了但未赋值,则它的值和类型都为undefined。如果一个变量在特定作用域中未声明,它的类型为undefined,但使用它的值将报错。
联系
null 和 undefined 值相同,但类型不同。
console.log(null == undefined); //true console.log(null === undefined); //false
注意
我们通常会使用null 和 undefined来检验一个变量是否存在,但需注意:
错误的检验方式:
if (myObject !== null && typeof myObject !== 'undefined'){ //对象存在 }
//如果myObject根本就未声明,使用一个未声明的变量,语句myObject !== null将会报错
正确的检验方式:
if (typeof myObject !== 'undefined' && myObject !== null){ //对象存在 }
蒹葭苍苍,白露为霜;
所谓伊人,在水一方。