javascript - 在 javascript 中使用 if(someBoolean) 与 if(someBoolean==true)

标签 javascript boolean

我想知道在像 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/

相关文章:

php - 在 php 中使用 strstr 作为 boolean 检查是什么意思?

javascript - 如何在 slickgrid 中显示行号列?

javascript - 如何使用 jquery 生成和附加一个随机字符串

javascript - 加载内容并应用函数 jQuery

javascript - 如何将多个变量写入一个数组?

javascript - .focus() 不适用于 jQuery 动态创建的元素

c++ std::string.find 在 boolean 表达式中返回意外结果

python - 获取 boolean 数组中至少 n 个连续 False 值的第一个 block 的索引

html - 设置假值与删除属性

Java Instanceof 方法混淆