要在JavaScript中检查一个变量的数据类型,可以使用typeof操作符。typeof是一个单数运算符,它返回一个字符串,表示未评价的操作数的类型。null 值描述了对象值的预期缺失。要检查typeof null,请使用下面的代码。
// app.js
data = null
console.log(typeof(data))
输出
object
你可以看到,null 在JavaScript中是一个对象。但是null在JavaScript中是一个原始值,像String、Number、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 值,可以使用平等 运算符,如**==或==。** 除了undefined和null本身,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()方法在比较null和undefined时与 **===**相同。
总结
要在JavaScript中检查null,可以使用三等分运算符(===)或Object.is()方法。 要找出null和undefined之间的区别,可以使用三等分运算符或**Object.is()**方法。
要松散地检查变量是否为null,可以使用双等价运算符(==)。双重平等运算符不能区分null和undefined,所以它算作是一样的。因此,如果你想严格检查,那么就不要使用双等号运算符。它将导致错误的结论。
在JavaScript中检查 "null"值的最好方法是将该值与null关键字或**Object.is()**方法进行严格的等价比较,并传递这两个值。
本教程就到此为止。
相关帖子
The postJavascript null check:完整指南》首次出现在AppDividend上。