JS 判断 null
在 JS 中,null 是一个特殊的值,表示变量或对象的值为空。当我们在开发过程中需要判断一个变量是否为空时,我们不仅需要判断它是否为 null,还需要考虑 Undefined、空字符串以及 0 这些可能会给我们造成困扰的值。在本文中,我们将针对多个角度进行分析,讨论如何在 JS 中判断 null。
一、使用 typeof 判断
typeof 是 JS 中的一个关键字,它可以用来判断一个变量的类型。我们可以用它来判断一个变量是否为 null、Undefined 或其他类型。
判断一个变量是否为 null,可以使用以下代码:
```
typeof variable === 'object' && !variable
```
这行代码会返回 true,当且仅当 variable 的类型为对象并且值为 null。但是需要注意,在该方法中 undefined 值也会被视为对象,例如:
```
let undefinedVariable;
typeof undefinedVariable === 'object' && !undefinedVariable // true
```
为了避免该问题,我们可以使用以下代码:
```
Object.prototype.toString.call(variable) === '[object Null]'
```
这段代码可以严格判断一个变量是否为 null,但是需要注意,如果该变量是一个对象的属性,它会返回 false,例如:
```
const obj = { prop: null };
Object.prototype.toString.call(obj.prop) === '[object Null]' // false
```
二、使用三元运算符判断
我们可以使用三元运算符来判断一个变量是否为空。以下代码可以判断 null、Undefined 和空字符串:
```
const result = variable ? variable : 'default value';
```
以上代码中,如果 variable 为空,则将变量的值设置为 'default value'。需要注意的是,如果 variable 的值为 0,该方法会返回默认值 'default value',因为 0 的值为 false。
三、使用 Object.is 判断
在 ES6 中,JS 引入了一个新的方法 Object.is,用于比较两个值是否相等。该方法可以用来判断一个变量是否为 null,例如:
```
Object.is(variable, null) // true
```
需要注意的是,该方法与严格等于(===)运算符的行为不同,它可以正确比较 NaN 和 -0 的值,例如:
```
Object.is(NaN, NaN) // true
Object.is(-0, 0) // false
```
四、使用 null.coalesce
null.coalesce 是一个 JS 库,可以方便地处理 null 值。它提供了一种简单的语法来处理多个变量的值,例如:
```
const result = a || b || c || 'default value';
```
以上代码中,如果 a、b 和 c 都为空,则将结果设置为 'default value'。
微信扫一扫,领取最新备考资料