逻辑运算符:|| && 大家都很熟悉应该,但是今天在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就会返回第一个操作数的值