javascript - 在 JS 中 if (condition) 表示 == true 或 === true

标签 javascript css

我知道 ===== 之间的区别,但是我一直相信 if (condition) condition 应该使用严格相等 (===) 而不是类型强制相等 (==) 针对 true 进行评估。

看一个例子:

if (1) {
    console.log("1");
}

if (1 == true) {
    console.log("2");
}

if (1 === true) {
    console.log("3");
}

它返回:

::1
::2

我知道 1 不严格等于 true,因为类型不同,但是当我根据 W3C 执行 if (condition) 时,它应该是严格相等的运行的测试 (===) 不是 == 的类型强制相等性。

那么为什么它记录 1?

最佳答案

if 语句使用condition == true。它在 ECMAScript 语言规范中给出,此处:http://www.ecma-international.org/ecma-262/5.1/#sec-12.5

请注意第 2 步中 ToBoolean() 的用法。这会将给定的参数转换为 bool 值,这意味着是的,对于 if< 的条件确实会发生类型强制转换声明。

关于javascript - 在 JS 中 if (condition) 表示 == true 或 === true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17883717/

相关文章:

javascript - Angular translate provider - 有没有办法替换一般变量?

Javascript 捕获未选择的单选按钮以及文本框和警报

html - 干扰导航栏的标题

html - 让 div 填充浏览器视口(viewport)的其余部分

javascript - 给下拉菜单选择一个标题,该标题在做出选择后仍显示在 Angular 落

javascript - jQuery:表单提交 - 多个事件处理程序

javascript - 为什么我可以使用 (myVar & 1) 来测试参与方以及我应该在 Javascript 中执行此操作吗?

javascript - jQuery/javascript 当页面中出现 css 类时如何加载脚本

css - 无法对齐共享按钮!

html - 更改 CSS 字体样式和大小没有任何效果