Сегодня у нас будет глубокое понимание встроенной функции isNaN javascript и логического оператора ! (Not), а также того, как эффективно использовать эти два термина в наших программах.

оператор isNaN и Not(!) — одни из многих запутанных терминов в Javascript для начинающих. isNaN — это «не число», написанное как isNaN(), — это встроенная функция javascript, которая принимает значение isNaN(value). isNaN() возвращает логическое значение true or false, указывающее, является ли значение числом или не числом.

Пример

isNaN(5)    //false
isNaN("Yes")    //true

isNaN() возвращает true, если заданное значение не является числом. Почему?

В самой ранней версии isNaN имеет особое поведение: если данный аргумент не является типом числа (т.е. 1, 2, 3), функция выполнит преобразование типа для значения, которое приведет его к числу и определит результирующий ценить.

ЗАПУТАН??

Хорошо, давайте попробуем понять NaN (не число). NaN не является противоположностью числа. Возьмем, к примеру, «строку», которая «не является числом», но не равна NaN. Итак, строка — это «не число». Если вы подумаете об этом в буквальном смысле, вы можете подумать, что любое значение, не являющееся числом, должно быть числом. Это неправильно!

NaN означает неверный номер. Вы получаете это, когда пытаетесь оперировать значением, которое не является числом.

Вот почему метод Number.isNaN() был введен в ES6. Это решает проблему ложного срабатывания isNaN .

Пример:

Number.isNaN(5)    //false
Number.isNaN("Yes")    //fals

Что здесь произошло??

Number.isNaN() не выполняет никакого принуждения, в отличие от предыдущего метода isNaN. другими словами, он не преобразует свой аргумент. Таким образом, всегда рекомендуется использовать Number.isNaN() при проверке, равно ли значение NaN.

НЕ(!) Оператор

! (Не) — логический оператор, возвращающий обратное значение логического типа. То есть он превращает истину в ложь и ложь в истину.

Пример:

let accepted = true
let rejected = false

console.log(!accepted )     //false
console.log(!rejected )     //true

здесь произошло следующее: оператор ! преобразует принятые в false, а отклоненные в true.

В следующий раз мы рассмотрим другие запутанные концепции в Javascript.