Все остальные ответы о & & против || верны, я просто хотел добавить еще одну вещь:
Функция isNaN()
проверяет, является ли параметр постоянным NaN
или нет. Он не проверяет, действительно ли параметр номер или нет. Таким образом:
isNaN(10) == false
isNaN('stackoverflow') == false
isNaN([1,2,3]) == false
isNaN({ 'prop' : 'value'}) == false
isNaN(NaN) == true
Другими словами, вы не можете использовать его для проверки того, содержит ли данная переменная число или нет. Для этого я предлагаю сначала запустить переменную через parseInt()
или parseFloat()
в зависимости от того, какие значения вы там ожидаете. После этого проверьте для isNaN()
, потому что эти функции возвращают только числа или NaN
. Также это будет гарантировать, что если у вас есть числовая строка, то она также рассматривается как число.
Простые и правильные. Когда 'x' не является числом, первое условие - True, и оно не будет проверять дополнительные условия сравнения. – eumiro
место сверху..thanks! – Naomi
Добро пожаловать :) –