我知道它之间的区别==,===但是我始终认为if (condition) condition应该true使用严格的等式(===)而不是类型强制的相等(==)进行评估.
看一个例子:
if (1) {
console.log("1");
}
if (1 == true) {
console.log("2");
}
if (1 === true) {
console.log("3");
}
Run Code Online (Sandbox Code Playgroud)
它返回:
::1
::2
Run Code Online (Sandbox Code Playgroud)
我知道1并不严格等于true,因为类型不同,但是当我if (condition)根据W3C 做它应该是严格的相等test(===)运行而不是类型强制相等==.
那为什么要记录1?
该if语句使用condition == true.它在ECMAScript语言规范中给出,这里:http://www.ecma-international.org/ecma-262/5.1/#sec-12.5
请注意ToBoolean()步骤2中的用法.这将给定参数转换为布尔值,这意味着是,类型强制确实发生在if语句的条件中.
| 归档时间: |
|
| 查看次数: |
10732 次 |
| 最近记录: |