我想知道在像 javascript 这样的弱类型语言中,使用之间是否有显着差异
var someBool=true;
if (someBool==true){
//Somecode
}
或者只是使用
if(someBool){
//Somecode
}
执行速度是否存在差异,或者是否存在某些语义差异,或者只是一个优于另一个?
最佳答案
语义差异很大,如下:
if (x)
具有语义:
- 确定
x
的值。 - 如果值为未定义、null、零、NaN、空字符串或 false,则条件被视为 false,否则被视为 true。
if (x==true)
具有语义:
- 确定
x
的值。 - 如果值为真则条件为真。
- 如果值为 false,则条件为 false。
- 否则,假装用户真的写了
if (x==1)
重新开始。
我不会详细介绍确定表达式是否等于 1 的所有逻辑;如果您需要详细信息,可以阅读 ECMAScript 规范修订版 3 的第 11.9.3 节。
关于javascript - 在 javascript 中使用 if(someBoolean) 与 if(someBoolean==true),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15092646/