Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.05.2011, 23:29
Аспирант
Отправить личное сообщение для revvo Посмотреть профиль Найти все сообщения от revvo
 
Регистрация: 17.01.2011
Сообщений: 38

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

В каком случае будет присваиваться data.width, а в каких 320?
Ответить с цитированием
  #2 (permalink)  
Старый 09.05.2011, 10:38
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от revvo Посмотреть сообщение
Я не недавно работаю с 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"
Ответить с цитированием
  #3 (permalink)  
Старый 11.05.2011, 08:59
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

melky,
Сообщение от 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);
__________________
readOnly
Ответить с цитированием
  #4 (permalink)  
Старый 11.05.2011, 18:05
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от poorking Посмотреть сообщение
melky,

Че то не то) если data.width, то data.width, иначе 320
ну высота ведь не может быть FALSE

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает "или" в if 9xakep Общие вопросы Javascript 24 20.07.2012 05:06
какой смысл двух отрицаний в выражении !!$.trim("" + a.value) belbek Общие вопросы Javascript 1 01.09.2010 11:22
RegExp и search. Проблема с переменной в выражении Arconas Общие вопросы Javascript 2 21.05.2010 15:45
количество повторений в регулярном выражении mrWong Общие вопросы Javascript 2 10.02.2010 12:57
Проблема с кавычкой в регулярном выражении bandolero Общие вопросы Javascript 5 31.01.2010 11:37