在JS中,a&&b或者a||b返回的是要么是a,要么是b,而不想其他语言中返回的是true或者false
a && b
var a = 1,b = 2
var c = a && b //a此时为true,执行b并返回b的值,c等于b;如果a为false,则返回a不执行b,c等于a
console.log(c)//2
a || b
var a = 1,b = 2
var c = a && b //a此时为true,则返回a的值不执行b;如果a为false,则执行b并返回b的值;
console.log(c)//1
对于js中的或与运算,需要隐式的转换为boolean类型再来运算,转换规则为:
数据类型 | true | false |
---|---|---|
Boolean | true | false |
String | 任何非空字符串 | 空字符串 |
Number | 任何非零数值(NaN) | 0 |
Object | 任何对象(空对象) | null |
Undefined | 无 | Undefined |
注:以上规则只在运用在转换为布尔值