Показать сообщение отдельно
  #2 (permalink)  
Старый 07.05.2011, 17:48
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от 9xakep
Не работает "или" в if
Он работает. И работает правильно. Но, думаю, я очень тебя удивлю, если я расскажу, как
1 === 1 || 2 || 3 // вернет true
но
3 === 1 || 2 || 3 // вернет 2 :0
П очему? Все просто! Оператор || возвращает то, что при приведении к boolean дает true.
Т.е. в первом:
1 === 1 - это true. Boolean(true) === true; поэтому возврает true.
А во-втором случае:
3 === 1 - это false;
А вот Boolean(2) === true, поэтому возвращает 2.
А в твоем случае лучше использовать switch:
switch(a){
  case 1:
  alert( 'Один пользователь' );
  break;
  case 2: case 3: case 4:
  alert( a + 'пользователя' );
  break;
  default:
  alert( a + 'пользователей' );
};

И еще:
+a+ 'Пользователя'
Т.е. ты сначала строку приводишь к числу, чтобы потом интерпритатор привел это число к строке, чтобы сложить со строкой? Не бред ли???
Ответить с цитированием