JavaScript 中 Null 和 Undefined 的区别

你们中的许多人混淆了 Null 和 Undefined。

但是,我们将在本教程中讨论一些差异和特点。

未定义是全局范围内的变量。
undefined 的默认值是原始值 undefined。
未定义意味着已声明的变量,但尚未分配该变量的值。

Null 是 JavaScript 原始值,表示有意缺少对象值。

也就是说,它可以赋值给一个变量,作为无值的表示。

例如,让我们将 null 的值分配给 test:

let value1 = null;
console.log(value1); //null

通常, undefined 表示已声明为未定义的变量:

let value2;
console.log(value2); //undefined

从上面的例子中,你已经知道 undefined 是一个类型本身,而 null 是一个对象。

但是为什么 typeof 运算符为空值返回“对象”呢?
这是原始 JavaScript 实现中的一个错误,然后被复制到 ECMAScript 中。

今天,null 被认为是对象的占位符,尽管实际上它是一个原始值。

但是,在检查 null 或者 undefined 时,请记住相等 (==) 和全等 (===) 运算符之间的区别,因为相等执行类型转换。

console.log(typeof null); //"object"
console.log(typeof undefined); //"undefined"
console.log(null === undefined); //false
console.log(null == undefined );//true
console.log(null === null ); //true
console.log(null == null); //true
console.log(!null ); //true

总而言之,在 JavaScript 中 null 意味着“无”和“空”,即不存在的东西。
而且,一个没有值的变量叫做 undefined。

日期:2020-06-02 22:16:29 来源:oir作者:oir