Почему Number(“e”) не возвращает NaN в if statement?

198
28 августа 2018, 21:20

Есть исходные данные в задаче:

    var pin = "12345e", arr = [];
    arr = pin.split("");

Почему в следующем if statement мы получаем "This is a number!"?

    if (Number(arr[5]) == NaN) {
      console.log("This is not a number!");
    } else {
      console.log("This is a number!");
    }
Answer 1

Потому, что по аналогии с SQL NULL проверка NaN === NaN всегда возвращает false. Для проверки на равенствоNaN нужно использовать функцию isNaN()

var pin = "12345e", 
  arr = []; 
arr = pin.split(""); 
if (isNaN(Number(arr[5]))) { 
  console.log("This is not a number!"); 
} else { 
  console.log("This is a number!"); 
}

Answer 2

А значение NaN по стандарту устроено так, что сравнения ==, <, >, <=, >= и даже === с ним возвращают false.

Ref: learn.javascript.ru

READ ALSO
Не срабатывает setTimeout в js

Не срабатывает setTimeout в js

Вот этот код в целом не работает

224
Как отправить запрос через прокси для telegram api(не бот), используя nodeJs?

Как отправить запрос через прокси для telegram api(не бот), используя nodeJs?

Использую вот эту библиотеку для подключения к API telegram, но когда осуществляется запрос на сервер, вылазит ошибка о том, что невозможно выполнить...

280
Не выполняется скрипт по нажатию на кнопку

Не выполняется скрипт по нажатию на кнопку

Есть проблема с AJAX подключением и выводом данных JSON , без него кнопка работает по принципу : нажал одни раз - записалась 1 (загорелась зеленым),...

220
Плагин лупа jquery

Плагин лупа jquery

подскажите как инициировать отмену плагина jqueryИспользую плагин лупы http://pcvector

249