null和undefined的区别(简单易懂)

2,463 阅读1分钟

一、null是一个特殊值,但我们常常误解它,将它和undefined搞混。

在下列场景中应该使用null。

1.用来初始化一个变量,这个变量可能赋值为一个对象。
2.用来和一个已经初始化的变量比较,这个变量可以是也可以不是一个对象。
3.当函数的参数期望是对象时,用作参数的传入。
4.当函数的返回值期望是对象时,用作返回值传出。
还有以下一些场景不应当使用null
1.不要使用null来检测是否传入了某个参数。
2.不要用null来检测一个未初始化的变量。

这里有一些示例代码:

二、undefined也是一个特殊值,我们常常将它和null搞混。

其中一个让人困惑的地方在于null==undefined结果为true。然而,这两个值的用途却各不相同。那些没有被初始化的变量都有一个初始值,即undefined,表示这个变量等待被赋值。

三、注意事项

1.值是undefined的变量和未声明的变量,typeof运算结果都是“undefined”。运算符typeof运算null的类型时返回“object”。
2.通过禁止使用特殊值undefined,可以有效地确保只在一种情况下typeof才会返回“undefined”:当变量未声明时。这样就可以区别null和undefined。