比较JavaScript中的null和undefined[示例]
作者:admin 时间:2022-6-2 0:47:52 浏览:null 和 undefined 是JavaScript中常见的两个值,在使用过程中,有时比较容易混淆,不知用哪个好。在本文中,将通过示例详细介绍 null 和 undefined ,通过比较,了解它们之间的差别。

关于 null 和 undefined 的含义
null:它是一个赋值值,这意味着它作为一个值专门分配给一个变量,表示该变量的空状态。
undefined:它不是赋值值,这意味着它没有专门分配给变量。
实例比较 null 和 undefined
undefined
JavaScript 在特定实例上返回 undefined。例如,当声明一个变量但未分配任何值时,返回 undefined。参考下面给出的代码:
let myVar;
console.log(myVar); //返回 undefined
console.log(typeof myVar); //返回undefined
在上面的示例中,可以看到“myVar”已声明但未分配任何值;因此,当我们 console.log 'myVar' 时,返回 undefined,当我们使用 typeOf 运算符检查 myVar 的类型时,再次返回 undefined。
null
但 null 与 undefined 不同。null 是一个赋值值,专门分配给一个变量,作为表示该变量的空状态的值。
let myVar = null;
console.log(myVar); //返回 null
console.log(typeof myVar); //返回 object
在上面的例子中,可以看出我们在 console.log 'myVar' 变量时得到了 null。但是当我们使用 JavaScript 中的 typeof 运算符检查“myVar”变量的类型时,我们会得到 Object。
null和undefined的不同之处
因此,很明显 null 和 undefined 属于不同的类型。null是对象类型,而 undefined 是未定义类型。让我们检查 null 是否等于 undefined。
console.log(null == undefined); // true
console.log(null === undefined); // false
当我们检查 if (null == undefined)时,我们在控制台中得到了 true,但是当我们检查 if (null === undefined) 时,我们得到了 false,因为 null 等于 undefined 但并不严格。正如我们已经看到 null 和 undefined 属于不同的类型,当使用严格相等运算符(===)比较它们时,我们会得到 false。我们可从下面文章中详细了解相等运算符和严格相等运算符之间的区别:
JavaScript中undeclared, undefined和null有什么区别?
undeclared
如果未使用适当的关键字(即var,let或const)声明变量,则该变量未声明。以下文章介绍了声明变量的关键字区别:
访问一个未声明的变量会抛出一个ReferenceError。
console.log(x); // ReferenceError: x is not defined
undefined
一个变量是undefined如果它没有被分配一个值。undefined是 JavaScript 中的原始数据类型,表示有意或无意的值的缺失。
let x;
console.log(x); // undefined
null
一个变量被赋予一个null的值,与任何其他值一样。null也是 JavaScript 中的原始数据类型,并且始终表示有意缺少值。
let x = null;
console.log(x); // null
JS 面试题:一个变量是null、undefined 还是 undeclared 有什么区别?
在 Javascript 中,undefined和null与变量包含的值有些相关,undeclared 的情况有所不同。
undefined 和 null 都属于数据类型类别。
undefined 是一个已经声明但没有值的变量,并且它本身是“undefined ”的类型。
null 是一个变量值,它是一个对象类型。
我们使用 console.log(); 和 type of 检查变量是否 undefined 或 null。
undeclared 的变量是一个没有“var”关键字声明的变量。
testVar = ‘hello world’;
而不是
var testVar = ‘hello world’;
当前面的代码被执行时,undeclared 的变量被创建为全局变量并且它们是可配置的(例如可以删除),参考文章:
总结
本文详细比较介绍了JavaScript中的null和undefined,还有undeclared,通过本文的学习,我们应该了解到null和undefined的使用区别。



