在JavaScript中,null
和 undefined
都表示无值(no value)的含义,但是它们在具体使用中有一些不同之处:
undefined
表示未定义,即声明了但未赋值的变量的默认值,或者访问对象不存在的属性时返回的值。例如:const x; console.log(x);
输出undefined
。null
表示空值,即一个变量被明确地赋值为空。例如:const x = null; console.log(x);
输出null
。
虽然它们都表示无值,但在某些情况下,它们是不等价的。例如,使用双等号(==
)比较时,null
和 undefined
会被视为相等的值,但在使用严格相等运算符(===
)比较时,它们是不相等的。同时,在使用 typeof
运算符时,null
会被视为一个对象,而 undefined
会被视为未定义的变量。
总结大概如下:
null
是一个赋值。这没有任何意义。undefined
表示变量已声明但尚未定义。null
是一个对象。undefined
是类型undefined
。null !== undefined
但是null == undefined
。