javascript - 如果测试[未定义]

标签 javascript arrays if-statement conditional-statements undefined

[undefined] === true 返回 false

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

is true打印到控制台。

这有什么意义?

最佳答案

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

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

这可以解释正在发生的事情:https://www.sitepoint.com/javascript-truthy-falsy/

关于javascript - 如果测试[未定义],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53231293/

相关文章:

java - 为什么在Java中使用[]创建数组而不是创建数组对象?

excel - 在Excel中连接单元格忽略空白单元格

javascript - 在 Angular 2 中结合 vendor JavaScript

python - 如何使用 Python 创建 JSON 对象的嵌套数组?

javascript - react 使用 dangerouslySetInnerHTML 渲染带有 html 标签的 json

python - 转换 numpy 数组中特定列的数据类型

java - 将 if-else 修改为策略模式

javascript - 难以简化条件

javascript - 我如何使用 jQuery 知道 DOM 元素当前是否在屏幕上

javascript - Require.js 未捕获类型错误 : undefined is not a function