脚本的空值检查。完整指南

136 阅读4分钟

Javascript Null Check - Check Null Value using Object.is()

要在JavaScript检查一个变量的数据类型,可以使用typeof操作符。typeof是一个单数运算符,它返回一个字符串,表示未评价的操作数的类型。null 描述了对象值的预期缺失。要检查typeof null,请使用下面的代码。

// app.js

data = null

console.log(typeof(data))

输出

object

你可以看到,null 在JavaScript中是一个对象。但是null在JavaScript中是一个原始值,像StringNumber、Boolean、undefined和Symbol。遗憾的是,如果你对null值调用typeof操作符,它会返回 "对象"。

JavaScript的null是一个原始值,但它的数据类型是一个对象。 现在,这是JavaScript从一开始就存在的一个历史性错误,一直没有被开发者修复。

null是一个假的 值。我的意思是说,如果约束为布尔值,它就会当作假的

data = null

if (data) {
  console.log('The null value is not falsy')
}
else {
  console.log('The null value is falsy')
}

输出

The null value is falsy

这意味着如果你想检查一个null值,那么if-else语句可能对你没有帮助,因为它返回的是错误的结果,会导致你的计算错误。

所以,使用typeof操作符来检查**"null "**值是没有用的,会导致错误的路径。

JavaScript的空值检查

检查 JavaScript中的 null ,可以使用平等 运算符,如**==或==。** 除了undefinednull本身,null 与其他任何假值都不松散地相等。

data = null

console.log("The value of data is: ", data)
console.log('data == 0', data == 0)
console.log('data == on', data == 0n)
console.log('data==data', data == data)
console.log('data==undefined', data == undefined)
console.log('data==false', data == false)
console.log('data==NaN', data == NaN)
console.log('data==""', data == "")

输出结果

The value of data is:  null
data == 0 false
data == on false
data==data true
data==undefined true
data==false false
data==NaN false
data=="" false

从输出结果中,你可以看到null 只是松散地等于undefined和它自己。它不等于任何其他的假想值。

所以,当你遇到一个用例,你想在处理变量的值之前检查它是否有任何值时,使用**==** null来检查null或者undefined

JavaScript的空值检查。使用===严格的平等

要严格检查JavaScript中的null值,可以使用三等分运算符(===)

data = null

console.log("The value of data is: ", data)
console.log('data === 0', data === 0)
console.log('data === on', data === 0n)
console.log('data === data', data === data)
console.log('data === undefined', data === undefined)
console.log('data === false', data === false)
console.log('data === NaN', data === NaN)
console.log('data=== ""', data === "")

输出

The value of data is:  null
data === 0 false
data === on false
data === data true
data === undefined false
data === false false
data === NaN false
data=== "" false

你可以看到,如果你检查null === undefined,它返回false。 这意味着,如果我们严格检查这两个值,那么它们是不一样的。所以,如果你要明确地检查null值, 那么请使用三等分运算符(===)。这是在JavaScript中检查空值的推荐操作符。

要明确地检查值是否为空,请使用三等分运算符。有很多JavaScript开发者倾向于一切都要显式化以保证准确性,包括我在内,这并没有什么不对。

检查空值的JavaScript Object.is()方法

JavaScriptObject is()一个内置的方法,可以检查两个值是否是同一个值。ES2015方法Object.is()与严格的 **===**和宽松的 **===**平等运算符的不同之处在于它如何检查NaN和负0-0值。

为了检查空值,**Object.is()**的行为与 **(===)**三重平等运算符相同。

data = null

console.log("The value of data is: ", data)
console.log('If data is strictly equal to undefined', Object.is(data, undefined))
console.log('If data is strictly equal to data', Object.is(data, data))

输出

The value of data is:  null
If data is strictly equal to undefined false
If data is strictly equal to data true

如果你想明确地检查变量是否为空或未定义,那么使用JavaScript Object.is()方法。Object.is()方法在比较nullundefined时与 **===**相同。

总结

要在JavaScript中检查null,可以使用三等分运算符(===)或Object.is()方法。 要找出null和undefined之间的区别,可以使用三等分运算符或**Object.is()**方法。

要松散地检查变量是否为null,可以使用双等价运算符(==)。双重平等运算符不能区分null和undefined,所以它算作是一样的。因此,如果你想严格检查,那么就不要使用双等号运算符。它将导致错误的结论。

在JavaScript中检查 "null"值的最好方法是将该值null关键字或**Object.is()**方法进行严格的等价比较,并传递这两个值。

本教程就到此为止。

相关帖子

脚本中的Number Nan

如何在JavaScript中检查未定义

The postJavascript null check:完整指南》首次出现在AppDividend上。