Phương thức Number.isNaN()
(NaN viết tắt cho Not a Number) xác định xem giá trị đó có chính xác là NaN
hay không. Một phiên bản khác của phương thức này, nhưng nằm trong phạm vi global đó là: isNaN()
.
Syntax
Number.isNaN(value)
Parameters
value
- Giá trị truyền vô để kiểm tra xem nó có phải chính xác là
NaN
hay không.
Description
Chả hai phương pháp operator so sánh bằng, đó là ==
và ===
đề trả ra false
khi chúng ta kiểm tra giá trị NaN
là NaN
ví dụ: NaN === NaN, (đáng lẽ ra là true đúng không ?, nhưng thực tế giá trị NaN này không thể được xác định bằng cách này.), phương thức Number.isNaN()
được tạo ra để làm việc này. Phương pháp này đưa ra 1 giải pháp để xác định NaN, NaN là một giá trị mà không thể so sánh với chính nó để kiểm tra như các giá trị khác trong JavaScript.
isNaN()
là phương thức kiểm tra NaN trong phạm vi global, lưu ý là Number.isNaN()
không giống như isNaN()
trong global, Number.isNaN()
xác định chính xác NaN
đó có phải là giá trị NaN
của Number hay không. Vì, chỉ có NaN thật sự mới đưa ra được giá trị true khi mang vô phương thức này. Khác với global, miễn cái gì không phải là số thì cũng trả ra giá trị là true.
Examples
Number.isNaN(NaN); // true Number.isNaN(Number.NaN); // true Number.isNaN(0 / 0) // true // e.g. these would have been true with global isNaN() Number.isNaN("NaN"); // false Number.isNaN(undefined); // false Number.isNaN({}); // false Number.isNaN("blabla"); // false // These all return false Number.isNaN(true); Number.isNaN(null); Number.isNaN(37); Number.isNaN("37"); Number.isNaN("37.37"); Number.isNaN(""); Number.isNaN(" ");
Polyfill
Number.isNaN = Number.isNaN || function(value) { return typeof value === "number" && isNaN(value); } // Or Number.isNaN = Number.isNaN || function(value) { return value !== value; }
Specifications
Specification | Status | Comment |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Number.isnan' in that specification. |
Standard | Initial definition. |
ECMAScript 2016 Draft (7th Edition, ECMA-262) The definition of 'Number.isnan' in that specification. |
Draft |
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 25 | 15 (15) | No support | (Yes) | 9 |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | No support | ? | 15.0 (15) | No support | No support | 9 |