NaN означає "Не номер" і є значенням у JavaScript, яке використовується для представлення невизначеного або невідображуваного значення. NaN є результатом операції, яка мала повернути число, але не змогла повернути через помилку або невизначене/порожнє значення.
NaN не має такого самого значення, як NaN, тому NaN == NaN є хибним, але NaN має те саме представлення в пам’яті, що й NaN, тому isequal(NaN, NaN) є істинним. -0,0 і 0,0 мають однакове значення, але не однакове представлення в пам’яті, тому там воно змінюється.
Щоб визначити, чи є значення NaN, використовуйте Number. isNaN() або isNaN(), щоб найбільш чітко визначити, чи є значення NaN — або, оскільки NaN є єдиним значенням, яке порівнюється не дорівнює самому собі, ви можете виконати самопорівняння, як x !== х . Щоб отримати додаткові відомості про NaN та його порівняння, див. Порівняння рівності та однаковість.
У pandas відсутнє значення позначається NaN. У більшості випадків терміни missing і null взаємозамінні, але щоб відповідати стандартам pandas, ми продовжуватимемо використовувати missing у цьому підручнику.
Number.isNaN() це більш надійний спосіб перевірити, чи є значення числовим значенням NaN чи ні. Крім того, можна використати вираз x !== x, і жодне з рішень не підлягає хибним спрацюванням, які роблять глобальний isNaN() ненадійним. Щоб перевірити, чи є значення числом, використовуйте typeof x === "number" .
Така поведінка тому, що NaN не є дійсним числом, тому його не можна порівнювати з будь-яким іншим значенням, навіть із самим собою. Усі ці порівняння повертають помилку, навіть якщо може здатися, що вони повинні бути правдивими. Це пояснюється тим, що NaN не дорівнює жодному значенню, включаючи null, undefined, false, true або порожній рядок.