我想我知道的每种语言
if(a)
与
相同if(a == true)
在JavaScript中证明它不是真的,因为:
if([])
似乎表现得好,但是:
if([] == true)
相反的事情。
我无法找到任何可能的解释,尤其是这个问题并非以空字符串形式出现(例如== true
,但不是=== true
,与空数组相同)。这是JavaScript中的错误还是什么?
答案 0 :(得分:2)
在JavaScript中,有一个truthy和falsey值的概念。 if
语句测试给定值的真实性或虚假性,而不是严格平等true
或false
。
true
显然是真的。 false
显然是假的。其余的可能有点棘手。 MDN可能是关于哪些值评估为falsey的最清晰的文档:https://developer.mozilla.org/en-US/docs/Glossary/Truthy
在这种情况下,[]
是一个真值,因此条件通过并执行代码。