Вход

Просмотр полной версии : "Или" в выражении


revvo
08.05.2011, 23:29
Я не недавно работаю с js, и некоторые вещи мне трудно понять. Подскажите, как понимать эту конструкцию?
img.width = data.width || "320";
В каком случае будет присваиваться data.width, а в каких 320?

melky
09.05.2011, 10:38
Я не недавно работаю с js, и некоторые вещи мне трудно понять. Подскажите, как понимать эту конструкцию?
img.width = data.width || "320";
В каком случае будет присваиваться data.width, а в каких 320?

идет приведение в булеву типу, а значит, что

FALSE будут иметь такое :


undefined
null
NaN
'' (пустая строка)
0 ( нолик )
сам false,конечно же


ИЛИ работает так: если по левую сторону находится FALSE, то начинает обрабатываться то,что справа, пока не будет true. Если по левую сторону находится TRUE, то то,что справа,не будет высчитываться и вернется первое в результате

320 как раз дает true.

т.е.

в примере
img.width = data.width || "320";

"если высота картинки равна нулю, то она становится 320, иначе data.width"

poorking
11.05.2011, 08:59
melky,
"если высота картинки равна нулю, то она становится 320, иначе data.width"
Че то не то) если data.width, то data.width, иначе 320

var img = {
width: 0
}

var data = {
width: 10
}

img.width = data.width || 320;
alert(img.width);

data.width = 0;

img.width = data.width || 320;
alert(img.width);

melky
11.05.2011, 18:05
melky,

Че то не то) если data.width, то data.width, иначе 320


ну высота ведь не может быть FALSE :D

только ноль, или "не установлено", или строка