Number.isNaN()

Metoda Number.isNaN() okre艣la czy podany parametr ma warto艣膰 NaN i czy jest typu Number. Jest to ulepszona wersja oryginalnej, globalne funkcji isNaN().

Sk艂adnia

Number.isNaN(value)

Parametry

value
Warto艣膰, kt贸r膮 b臋dziemy testowa膰 NaN.

Zwracana warto艣膰

true, je艣li podana warto艣膰 jest NaN, a jej typem jest Number; w przeciwnym razie, false.

Opis

Poniewa偶 oba operatory por贸wnania, == (en-US) i === (en-US), dla zapytania czy NaN jest r贸wne NaN zwracaj膮 false funkcja Number.isNaN() staje si臋 niezb臋dna. Jest sytuacja wyj膮tkowa i nie wyst臋puje, gdy por贸wnujemy dowolne inne warto艣ci w j臋zyku JavaScript.

W por贸wnaniu do funkcji globalnej isNaN(), metoda Number.isNaN() nie ma problemu z usilnym konwertowaniem parametru na liczb臋. To oznacza, 偶e mo偶na bezpiecznie przekazywa膰 warto艣ci, kt贸re normalnie mog艂yby zosta膰 skonwertowane na NaN, ale nie maj膮 tej samej warto艣ci co NaN. To r贸wnie偶 oznacza, 偶e jedynie warto艣ci typu Number, kt贸re s膮 r贸wnie偶 NaN, zwr贸c膮 true.

Przyk艂ady

Number.isNaN(NaN);        // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0);      // true

// Gdyby艣my u偶yli funkcji isNaN(), te przyk艂ady zwr贸ci艂by true
Number.isNaN('NaN');      // false
Number.isNaN(undefined);  // false
Number.isNaN({});         // false
Number.isNaN('blabla');   // false

// Wszystkie zwracaj膮 false
Number.isNaN(true);
Number.isNaN(null);
Number.isNaN(37);
Number.isNaN('37');
Number.isNaN('37.37');
Number.isNaN('');
Number.isNaN(' ');

Polyfill

Nast臋puj膮cy przyk艂ad dzia艂a, poniewa偶 NaN jest jedyn膮 warto艣ci膮 w j臋zyku JavaScript, kt贸ra nie jest r贸wna samej sobie.

Number.isNaN = Number.isNaN || function(value) {
    return value !== null && (value != value || +value != value);
}

Opis

Specification Status Comment
ECMAScript (ECMA-262)
The definition of 'Number.isnan' in that specification.
Living Standard
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Number.isnan' in that specification.
Standard Initial definition.

Kompatybilno艣膰

BCD tables only load in the browser

Zobacz r贸wnie偶