如果测试 [undefined]

if test on [undefined]

[undefined] === true returns false.

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

is true 打印到控制台。

这有什么意义?

使用三个等号来判断值和类型是否相同;这就是 1 == true1 !== true.

的原因

您的 if 语句试图评估 [undefined],但仅限于它是真还是假。 [undefined] 是一个非空数组,因此它是真值,并且在 if 语句中计算为 true。但是,[undefined] 本身不是布尔值,所以这就是 [undefined] === true 计算结果为 false 的原因。

这在一定程度上解释了正在发生的事情:https://www.sitepoint.com/javascript-truthy-falsy/