null和undefined都是js中的特殊值,表示缺失或未定义的值。
null表示一个空对象指针,即该变量本应该指向一个对象,但是现在没有指向任何一个对象。例如:
var obj = null;
undefined表示一个未定义的值,即该变量没有被赋值或者被赋值为undefined。例如:
var x;console.log(x); // undefined
在条件判断中,null和undefined都会被转换为false,但是在其他方面,它们有一些不同的行为。
例如,对于对象属性的访问,如果该属性不存在,返回的是undefined,而不是null:
var obj = {a: 1};console.log(obj.b); // undefined
另外,null可以被赋值给任何类型的变量,而undefined只能被赋值给undefined类型的变量:
var x = null;console.log(x); // nullvar y;y = undefined;console.log(y); // undefined