JavaScript中Undefined与Null的区别详解

作者:青柠时间:2026-10-31 00:57:12浏览:180

本文详细解析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

作者最新文章