Сравнение значений NaN на равенство в Javascript - PullRequest
59 голосов
/ 23 января 2012

Мне нужно сравнить два числовых значения на равенство в Javascript.Значения также могут быть NaN.Я придумал этот код:

if (val1 == val2 || isNaN(val1) && isNaN(val2)) ...

, который работает нормально, но мне он кажется раздутым.Я хотел бы сделать это более кратким.Есть идеи?

Ответы [ 12 ]

0 голосов
/ 13 апреля 2016

Сравнение равенства с NaN всегда приводит к False.

Мы можем перейти к функции JavaScript isNaN() для проверки равенства с NaN. Пример:

1. isNaN(123) //false

2. var array = [3, NaN];

for(var i = 0 ; i< array.length; i++){
  if(isNaN(array[i])){
      console.log("True ---- Values of " + i);
    } else {
      console.log("false ---- Values of " + i);
    }
}

Результаты:

false ---- значения 0

True ---- значения 1

0 голосов
/ 06 июля 2015

Почему бы не выражение if, как это?

if (isNaN(x) == true){
        alert("This is not a number.");
    }
...