Сообщение от 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+ 'Пользователя'
Т.е. ты сначала строку приводишь к числу, чтобы потом интерпритатор привел это число к строке, чтобы сложить со строкой? Не бред ли???