在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 |
注:以上規則只在運用在轉換爲布爾值