JavaScript中的null与undefined的区别

2024年8月31日 | 阅读 4 分钟

在JavaScript中,原始类型空值都被称为null。被标记为null的变量是空的。如果一个变量被声明了但还没有赋值,那么它是undefined。

什么是Null?

在英语中,“null”这个词被频繁使用。字面意思就是没有值。类似于编程中的null,它有相同的含义。

Null本质上是变量的赋值值。被标记为null的变量是空的。

任何被赋值为null的变量都被认为是空的或空白的。它表明该变量没有意义。在JavaScript中,null也是一个对象,当它应用于变量时没有意义。由于JavaScript从不自动将值更改为null,因此用户必须显式设置值。将一个对象设置为null会使其变空。

Null是一个特殊值,表示有意地缺少任何对象值。它通常用于表示变量或对象属性没有值,或者用于显式地将变量或对象属性重置为无值。

例如

什么是Undefined?

尽管null和undefined之间存在细微差别,但程序员了解这一点至关重要。

Undefined,顾名思义,被定义为“未定义”。因此,当一个变量被声明但未赋值时,它被称为undefined

与null不同,JavaScript会自动将一个已声明但未初始化的变量的值设置为undefined。在运行时,该变量会被生成。当函数参数没有传递参数时,默认值被假定为undefined。此外,当一个函数没有产生值时,它会返回undefined。

Undefined是一个原始值,它会被自动分配给一个已声明但尚未用值初始化的变量。它也是函数参数未传递值的默认值。例如:

输出

undefined

NULL和Undefined的一些区别

null和undefined之间存在多种差异。null和undefined之间的一些主要区别如下:

1. Null是对象类型,而undefined是原始类型。但是,两者在JavaScript中都被认为是falsy值(假值),意味着它们在布尔上下文中会评估为false。

2. 可以使用typeof运算符来确定一个值是null还是undefined。

例如

3. 当函数没有显式返回值时,它默认将返回undefined。

例如

4. 访问不存在的属性或变量也可能导致undefined。

例如

5. nullundefined都可以显式地赋值给变量或对象属性。但是,通常建议使用null来表示值的缺失,并将undefined保留给尚未初始化的变量或未传递值的函数参数。

6. 在比较null和undefined时,它们被认为是相等的,但不等于任何其他值。

例如

7. 当尝试访问对象中不存在的属性时,JavaScript将返回undefined而不是抛出错误。

8. null通常用于指示一个对象不存在或不可用。例如,如果一个函数期望一个对象作为参数但未提供,它可能会返回null来表示未找到对象。但是,需要注意的是,返回null是JavaScript中的一种约定,而不是强制要求。

9. undefined有时用于表示某个值丢失或未提供。例如,如果一个函数期望一个参数但未提供,它可能会使用undefined作为默认值。同样,如果一个变量尚未用值初始化,它将具有undefined值。


下一主题区别