<分区>
我正在尝试一个代码片段,结果对于 console.log 语句和条件语句中的空数组检查是不同的。 帮助/思考为什么这是不同的? 提前致谢!
//Output: true
if([]) {
console.log(true)
} else{
console.log(false)
}
//Output: false
console.log([] == true)
标签 javascript
<分区>
我正在尝试一个代码片段,结果对于 console.log 语句和条件语句中的空数组检查是不同的。 帮助/思考为什么这是不同的? 提前致谢!
//Output: true
if([]) {
console.log(true)
} else{
console.log(false)
}
//Output: false
console.log([] == true)
最佳答案
您似乎遇到了一个已知的 JavaScript 怪癖。
“[]是真的,但不是真的”
问题不在于您在哪里进行评估,而是两个看似相同的评估实际上是不同的。
见 https://github.com/denysdovhan/wtfjs#-is-truthy-but-not-true
关于javascript - 'if condition' 与 'console.log' 内部相等性检查之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53089337/