gpt4 book ai didi

javascript - JavaScript 中空格等于整数 0 吗?

转载 作者:行者123 更新时间:2023-12-03 01:21:03 26 4
gpt4 key购买 nike

我的应用程序行为异常,并认为下面的代码会意外地执行 else 语句。

代码

if(" " != 0) {
console.log("whitespace is not zero");
}
else {
console.log("bar");
}

Firebug 输出

bar

我认为空格是一个字符串,与整数零比较应该返回 false,就像上面的情况一样,但我不知道为什么它会是 else 语句。

谁能解释一下为什么吗?

最佳答案

在 JS 中,""== 0 等于 true宽松/宽松比较,您应该使用严格相等运算符 ===/!== 相反:

" " !== 0

达到第一个条件。

<小时/>

测试:

console.log(" " == 0); // true
console.log(" " === 0); // false
<小时/>

松散比较图表:

""           ==   "0"           // false
0 == "" // true
0 == "0" // true
false == "false" // false
false == "0" // true
false == undefined // false
false == null // false
null == undefined // true
" \t\r\n" == 0 // true

严格比较表:

""           ===   "0"           // false
0 === "" // false
0 === "0" // false
false === "false" // false
false === "0" // false
false === undefined // false
false === null // false
null === undefined // false
" \t\r\n" === 0 // false

(道格拉斯·克罗克福德的示例)

<小时/>

良好实践:

只要有可能,请使用严格相等运算符,因为使用松散相等运算符,JS 会进行类型强制,这会对性能造成影响,并且并不总是产生预期结果,如下所示以上对比图。

关于javascript - JavaScript 中空格等于整数 0 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9307603/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com