- undefined:只有一个值,也就是undefined。undefined意为未定义,即当使用var声明了变量但未进行赋值时,这个变量的返回值就是undefined。
typeof undefined // 返回"undefined"
undefined产生的原因有两种:
(1)访问对象不存在的属性或方法
(2)声明了变量但没有赋值
返回undefined的场景:
// 变量声明了,但没有赋值
var i;
i // undefined
// 调用函数时,应该提供的参数没有提供,该参数等于undefined
function f(x) {
return x;
}
f() // undefined
// 对象没有赋值的属性
var o = newObject();
o.p // undefined
// 函数没有返回值时,默认返回undefined
function f() {}
f() // undefined
- null:表示一个变量中没有包含有效数据,可以将它当作对象的占位符(placeholder)。(placeholder)null在这里意为空值、空的意思,更确切的说,一个被赋值为null的变量没有保存有效的数值、字符串、布尔、数组或对象等,可以通过给一个变量赋值为null来清空变量中的内容。产生null的原因只有一个:即对一个变量显示的赋值为null。
typeof null //返回 "object"
使用null的场景
用来初始化一个变量,这个变量可以赋值为一个对象。
用来和一个已经初始化的变量比较,这个变量可以是也可以不是一个对象。
当函数的参数期望是对象时,用作参数传入。
当函数的返回值期望是对象时,用作返回值传出。
用法:
var person = null;
function getPerson() {
if(condition) {
return new Person('Jon');
}else {
return null;
}
}
另外下面一些场景不应当使用null:
(1)不要使用null来检测是否传入了某个参数。
(2)不要使用null来检测一个未初始化的变量。
文章著作权归饥人谷_sunny和饥人谷所有,转载须说明来源
网友评论