javascript
Каков результат 'typeof NaN' в JavaScript?
Практикуйте свои знания
Объяснение
Разбираем 'typeof NaN' в JavaScript
В JavaScript, при использовании оператора 'typeof' с NaN (Not a Number), вы получите результирующую строку 'number'. Да, это может показаться немного странным, но это связано с внутренним представлением NaN в языке программирования JavaScript.
NaN в JavaScript используется для представления значения, которое не является допустимым числом. Однако, по определению, NaN классифицируется как свойство глобального объекта Number и, следовательно, 'typeof NaN' возвращает 'number'.
Примеры использования NaN в JavaScript
Ниже представлены несколько примеров, которые могут привести к NaN в JavaScript:
console.log(Math.sqrt(-1)); // NaN
console.log(0 / 0); // NaN
console.log(Number('Some text')); // NaN
Как вы можете видеть, NaN возникает тогда, когда математическая операция не может быть выполнена корректно или строка, которую мы пытаемся преобразовать в число, на самом деле не является числом.
Проверка на NaN
Несмотря на то, что 'typeof NaN' возвращает 'number', проверка на NaN в JavaScript немного усложняется из-за того, что NaN не равно самому себе.
console.log(NaN === NaN); // false
Вместо использования '==' или '===', вы можете использовать функцию 'isNaN()' для проверки, является ли значение NaN.
console.log(isNaN(NaN)); // true
На самом деле, существуют некоторые сложности и недостатки в использовании isNaN(), но это более глубокая тема, выходящая за рамки данного обсуждения.
В заключении, кажущееся противоречием 'typeof NaN' возвращающего 'number' в JavaScript связано с внутренним представлением NaN в языке. Оператор 'typeof' идентифицирует NaN как число, поскольку таковым и является его официальное вид в спецификации JavaScript.
Хотите ещё? Пройдите полный тест «Основы Javascript».
Начать викторину