JavaScript null 与 undefined
-
JavaScript 中的
null -
JavaScript 中的
undefined -
为什么人们会混淆
null和undefined与 JavaScript 中的相同 -
JavaScript 中
null和undefined之间的区别
JavaScript 是一种强大的语言,但使用不同的数据类型可能会造成混淆,尤其是对于初学者而言。null 和 undefined 数据类型似乎什么都不代表,但它们是不同的。
需要区分这些并知道何时使用哪一个以避免运行时错误。
本文讨论 null 和 undefined 及其区别。
JavaScript 中的 null
null 是 JavaScript 中的一个对象。如果它没有意义,那没关系,因为它是 JavaScript 中的一个错误。它应该是原始数据类型之一,但进行此更改会破坏许多现有的代码库。
这是一个用户分配的值; JavaScript 永远不会单独为变量提供 null 的值。它是分配给留空的变量的值。它可以称为空值。
JavaScript 中的 undefined
undefined 是一种状态。当我们声明一个变量但从未用值初始化它时,它被称为未定义。它是 JavaScript 用来初始化变量的默认值。它也是一个空值。
为什么人们会混淆 null 和 undefined 与 JavaScript 中的相同
null 和 undefined 在以下方面是相同的:
- 两者都是原始数据类型。
- 如果你使用相等运算符
==比较它们,则返回 true。
null == undefined; // returns true
JavaScript 将两者都视为空值。
- 在表达式中使用时,
undefined和null都会产生false。
!!undefined; // false
!!null; // false
JavaScript 中 null 和 undefined 之间的区别
- 类型差异
console.log(typeof (null)); // object
console.log(typeof (undefined)); // undefined
在上面的示例中,我们使用 typeof 运算符来检查它们的数据类型。它将 null 数据类型作为 object 返回,将 undefined 数据类型返回为 undefined。尽管相等运算符 == 返回 true,但标识运算符 === 将返回 false,因为它们的值相等但具有不同的数据类型。
- 算术运算
null 在执行算术运算时表现得像一个没有值的数字。执行操作会给出类似于 null 为 0 的结果。
console.log(4 + null); // 4
console.log(4 * null); // 0
console.log(4 - null); // 4
console.log(4 / null); // Infinity
需要注意的是,虽然它在算术运算中可能被视为 0,但 null 的值不是 0。
同时,undefined 在算术运算中使用时返回 NaN。
console.log(4 + undefined); // NaN
console.log(4 * undefined); // NaN
console.log(4 - undefined); // NaN
console.log(4 / undefined); // NaN
Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.
LinkedIn