在 if 语句中,JavaScript 将条件包装成 bool 值是真的吗?
if(x) => if(Boolean(x))
在比较中,JavaScript 将比较元素包装成数字是真的吗?
a == b => Number(a) == Number(b)
最佳答案
是的,也不是。
对于第一部分,是,这基本上就是 javascript 所做的。
但对于后者,没有。并非 JavaScript 中的所有内容都可以转换为数字。例如:
Number('abc') // => NaN
和 Not-A-Numbers 不相等:
NaN == NaN // => false
所以像这样:
Number('abc') == Number('abc') // => false!
但是对于相等比较,这实际上是正确的。
'abc' == 'abc' // => true
附带说明,在 JavaScript 中使用 ===
可能会更好,它还会检查所比较的值的类型:
0 == '0' // => true
0 === '0' // => false, because integer is not a string
关于===
的更多细节可以是read over here .
关于Javascript if 语句与比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10494573/