Javascript:如果([])出现意外结果

时间:2016-09-20 16:57:27

标签: javascript

我想我知道的每种语言

if(a)

相同
if(a == true)

在JavaScript中证明它不是真的,因为:

if([])

似乎表现得好,但是:

if([] == true)

相反的事情。

我无法找到任何可能的解释,尤其是这个问题并非以空字符串形式出现(例如== true,但不是=== true ,与空数组相同)。这是JavaScript中的错误还是什么?

1 个答案:

答案 0 :(得分:2)

在JavaScript中,有一个truthy和falsey值的概念。 if语句测试给定值的真实性或虚假性,而不是严格平等truefalse

true显然是真的。 false显然是假的。其余的可能有点棘手。 MDN可能是关于哪些值评估为falsey的最清晰的文档:https://developer.mozilla.org/en-US/docs/Glossary/Truthy

在这种情况下,[]是一个真值,因此条件通过并执行代码。