如果测试[未定义]

时间:2018-11-09 18:16:35

标签: javascript arrays if-statement conditional undefined

[undefined] === true返回false

if ([undefined]) { 
  console.log('is true') 
}

is true打印到控制台。

这有什么意义?

1 个答案:

答案 0 :(得分:3)

使用三个等号来确定值和类型是否相同;这就是1 == true1 !== true的原因。

您的if语句尝试评估[undefined],但仅评估其真实性还是虚假性。 [undefined]是一个非空数组,因此它是真实的,并且在if语句中的值为true。但是,[undefined]本身并不是布尔值,因此这就是[undefined] === true评估为false的原因。

这是在解释发生了什么事情的工作:https://www.sitepoint.com/javascript-truthy-falsy/