不为人知的逻辑运算符

逻辑运算符:||    &&  大家都很熟悉应该,但是今天在javascript中发现了一个不为人知的地方,那就是他们返回的操作数是两个操作数中的一个(且仅有一个).而不是像c语言中那样返回的是一个布尔值.

例如:

var a = 42;
var b = 'abc';
var c = null;
console.log(a||b);    //42
console.log(a&&b);    //'abc'
console.log(c||b);    //'abc'
console.log(c&&b);    //null

||和&&首先会对第一个操作数执行条件判断,如果其不是布尔值(如上例)会先进行TbBoolean强制类型转换,然后再执行条件判断.

  • 对于||,如果判断结果为true就返回第一个操作数的值,如果为false就会返回第二个操作数的值
  • 对于&&,如果判断结果为true就返回第二个操作数的值,如果为false就会返回第一个操作数的值

猜你喜欢

转载自blog.csdn.net/zSY_snake/article/details/84018344