與C、Java等語言一樣,JavaScript中可以用&&、||、!三個邏輯判斷符來對boolean值進行邏輯判斷。與C、Java不同的是,JavaScript中邏輯與(&&)和邏輯或(||)操作符可以應用在任何值上,而操作結束後返回的也不一定是boolean值。
邏輯與&&的處理規則
JavaScript中&&的處理規則是這樣的:
1.判斷第一個值是否為Falsy。如果為Falsy,則直接返回第一個值(不一定為boolean類型)。
2.如果第一個值為Truthy,則直接返回第二個值(不一定為boolean類型)。
復制代碼 代碼如下:
var o = {x:1, y:2};
console.log(o && o.y);//2
console.log(null && x);//null
邏輯或||的處理規則
與&&操作符類似,JavaScript中||的處理規則是這樣的:
1.判斷第一個值是否為Truthy。如果為Truthy,則直接返回第一個值(不一定為boolean類型)。
2.如果第一個值為Falsy,則直接返回第二個值(不一定為boolean類型)。
||操作符的這種行為使得JavaScript中一些快捷寫法成為現實:
1. 從一系列值中獲取第一個Truthy值:
復制代碼 代碼如下:
var a = null;
var b = 42;
var v = a || b || 100;
console.log(v);//42
2. 對函數中的參數賦以默認值:
復制代碼 代碼如下:
function test(p){
p = p || {};//if p is not passed, make it an empty object.
}
與&&和||不同,!操作符的行為與C、Java等語言是一致的,只返回boolean值(true或false)。