2012-02-23 2 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 Shorthand - Что такое '||' Средство оператора при использовании в задании?] (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). –

ответ

5

|| operator возвращает его левую часть, если рассасывается в быть истинным значением, иначе он возвращает свою правую сторону.

Так это означает то же самое, как:

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

Примечание еще, не, еще если.

Это распространенный образец и обычно не считается плохой практикой.

Получено, что вы должны быть уверены, что хотите if (obj), а не if (typeof obj !== "undefined").

0

Да, это то, что это означает, и это хорошая практика

|| является логическим ИЛИ, так что если obj1 = false вы получаете false OR obj2 так что переменная равна obj2

0

How || выражение работает

Значение выражения a || b определяется последним частичным оцениванием для определения булевой истины.

false || 1 оценивается как 1 является последним оцененным.

true || 0 оценивается как true, так как он оценивается последним.

Как OBJ оценивается в логическом контексте

Для объекта в контексте логического значения, объект не оцениваются в true, если нуль. Это означает даже {} === true.

Объединить выше два объяснения, var variable = obj1 || obj2 присваивает первый NONE нулевой объект от obj1 и obj2 к variable.