JavaScript中Undefined与Null的区别详解

作者:青柠

时间:2026-10-31

浏览:179

本文详细解析JavaScript中undefined与null的区别。undefined表示变量已声明但未初始化,类型为undefined;null表示空对象指针,类型为object。两者在双等号比较时相等,但三等号不等。文章提供了判断变量是否为undefined或null的具体代码示例及注意事项。

文章目录

Undefined与Null的基本定义

undefined表示变量已声明但尚未被初始化。需要注意的是,当使用typeof操作符判断数据类型时,无论是未被声明的变量还是未初始化的变量,返回的值均为undefined。


var message;
console.log(typeof message);//undefined
console.log(typeof age);//undefined

null表示一个空对象指针。使用typeof操作符检查时,其返回值为'object'。此外,undefined值在ECMA-262规范中被规定为派生自null值,因此对它们进行相等性测试时返回true。


console.log(null == undefined);//true

Undefined与Null的核心区别

undefined与null的主要区别如下: (1)undefined表示变量未被声明,或者已声明但未赋值。 (2)null是一个表示“没有值”的值。 (3)JavaScript将未赋值的变量默认值设为undefined。 (4)JavaScript引擎不会自动将变量设为null,它用于让程序员明确表明某个用var声明的变量没有值。 (5)undefined不是有效的JSON值,而null是。 (6)typeof undefined返回'undefined',而typeof null返回'object'。

类型判断与Falsy值特性

PS:它们都是基本类型。 两者均为falsy值(Boolean(undefined) // false, Boolean(null) // false)。 你可以使用以下代码判断一个变量是否是undefined:


 typeof variable === "undefined"

你可以使用以下代码判断一个变量是否是null:


 variable === null

在使用双等号(==)进行比较时,它们相等;但在使用三等号(===)进行比较时,它们不相等。


 null == undefined // true
 null === undefined // false

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章