2012-02-23 153 views
-1

可能重複:
Javascript Shorthand - What Does the '||' Operator Mean When Used in an Assignment?這段代碼是什麼意思?

var variable = obj1 || obj2;

莫非這?

var variable; 

if (obj1) 
{ 
    variable = obj1; 
} 
else if (obj2) 
{ 
    variable = obj2: 
} 

它被認爲是不好的做法?

+4

可能重複[Javascript速記 - 什麼是'||'運算符意味着什麼時候在作業?](http://stackoverflow.com/questions/4511301/javascript-shorthand-what-does-the-operator-mean-when-used-in-an-assignme)和[JavaScript | |操作者(http://stackoverflow.com/questions/1378619/javascript-operator)。 – 2012-02-23 17:06:24

回答

5

|| operator返回其左側在解析成爲一個真正的價值,否則它返回它的右手邊。

因此,這意味着相同的:

var variable; 
if (obj1){ 
    variable = obj1; 
} else { 
    variable = obj2: 
} 

其他否則,如果

這是一種常見模式,通常不被認爲是不好的做法。

問題是,你需要確保你想要if (obj)而不是if (typeof obj !== "undefined")

0

是啊,這是什麼意思,這是很好的做法

||是一個邏輯OR,所以如果obj1 = falsefalse OR obj2所以變量等於OBJ 2

0

如何||表達式作品

表達式a || b的值由最後一次部分評估確定,以確定布爾事實。

false || 1評估爲1是評估的最後一個。

true || 0評估爲true,因爲它是最後一個評估。

如何物鏡在布爾上下文

評價對於布爾值的上下文中一個對象,對象進行評估,以true除非空。這意味着即使是{} === true

結合上述兩個解釋,var variable = obj1 || obj2obj1obj2中的第一個無null對象指定爲variable