JS运算符的一些用法

逻辑运算符

通常用于布尔型(逻辑)值;这种情况,它们返回一个布尔型值。然而,&&和||运算符实际上返回一个指定操作数的值,因此这些运算符也用于非布尔型,它们返回一个非布尔型值。

能够转换为false的表达式有:null,0,""和undefined.

短路计算

a()&&b() 如果a()为真,那么则执行b(),并返回b()执行之后的结果;如果a()为假,则返回a的结果
a()||b() 如果a()为假,那么则执行b(),并返回b()执行之后的结果;如果a()为真,则返回a的结果
下面两个函数是等价的

function shortCircuitEvaluation() {
  doSomething() || doSomethingElse()
}

function equivalentEvaluation() {
  var flag = doSomething();
  if (!flag) {
    doSomethingElse();
  }
}

按位运算符~

1、通常可以使用~~代替parseInt()
2、由于对任一数值 x 进行按位非操作的结果为 -(x + 1),所以我们可以使用~arr.indexOf(val)来判断val是否在数组arr中存在

ES6中新增的[ ].includes也可以实现同样效果

mode_edit