null和undefined的区别

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

你可能感兴趣的