Page 81 - 6105
P. 81
NaN
Якщо математична операція не може бути здійснена, то повертається
спеціальне значення NaN (Not-A-Number).
Наприклад, ділення 0/0 в математичному сенсі не визначене, тому його
результат NaN:
alert (0/0); // NaN
Значення NaN використовується для позначення математичної помилки і
має такі властивості:
Значення NaN – єдине в своєму роді, яке не дорівнює нічому, включаючи
себе.
Наступний код нічого не виведе:
if (NaN == NaN) alert ( "=="); // Жоден виклик
if (NaN === NaN) alert ( "==="); // не спрацює
Значення NaN можна перевірити спеціальною функцією isNaN (n),
якаперетворює аргумент до числа і повертає true, якщо вийшло NaN, і false - для
будь-якого іншого значення.
var n = 0/0;
alert (isNaN (n)); // true
alert (isNaN ( "12")); // false, рядок перетворилася до
звичайного числа 12
Значення NaN «чіпляється». Будь-яка операція з NaN
повертає NaN.
alert (NaN + 1); // NaN
Якщо аргумент isNaN - не число, то він автоматично перетворюється до
числа. Звідси випливає спосіб перевірки значення на NaN: можна перевірити
значення на рівність самому собі, якщо не дорівнює - то NaN:
var n = 0/0;
if (n! == n) alert ( 'n = NaN!');
80