在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。