@@ -35,7 +35,7 @@ Number('0o10') // 8
35
35
36
36
ES6 在` Number ` 对象上,新提供了` Number.isFinite() ` 和` Number.isNaN() ` 两个方法。
37
37
38
- ` Number.isFinite() ` 用来检查一个数值是否为有限的(finite)。
38
+ ` Number.isFinite() ` 用来检查一个数值是否为有限的(finite),即不是 ` Infinity ` 。
39
39
40
40
``` javascript
41
41
Number .isFinite (15 ); // true
@@ -48,22 +48,7 @@ Number.isFinite('15'); // false
48
48
Number .isFinite (true ); // false
49
49
```
50
50
51
- ES5 可以通过下面的代码,部署` Number.isFinite ` 方法。
52
-
53
- ``` javascript
54
- (function (global ) {
55
- var global_isFinite = global .isFinite ;
56
-
57
- Object .defineProperty (Number , ' isFinite' , {
58
- value : function isFinite (value ) {
59
- return typeof value === ' number' && global_isFinite (value);
60
- },
61
- configurable: true ,
62
- enumerable: false ,
63
- writable: true
64
- });
65
- })(this );
66
- ```
51
+ 注意,如果参数类型不是数值,` Number.isFinite ` 一律返回` false ` 。
67
52
68
53
` Number.isNaN() ` 用来检查一个值是否为` NaN ` 。
69
54
@@ -73,26 +58,11 @@ Number.isNaN(15) // false
73
58
Number .isNaN (' 15' ) // false
74
59
Number .isNaN (true ) // false
75
60
Number .isNaN (9 / NaN ) // true
76
- Number .isNaN (' true' / 0 ) // true
77
- Number .isNaN (' true' / ' true' ) // true
61
+ Number .isNaN (' true' / 0 ) // true
62
+ Number .isNaN (' true' / ' true' ) // true
78
63
```
79
64
80
- ES5 通过下面的代码,部署` Number.isNaN() ` 。
81
-
82
- ``` javascript
83
- (function (global ) {
84
- var global_isNaN = global .isNaN ;
85
-
86
- Object .defineProperty (Number , ' isNaN' , {
87
- value : function isNaN (value ) {
88
- return typeof value === ' number' && global_isNaN (value);
89
- },
90
- configurable: true ,
91
- enumerable: false ,
92
- writable: true
93
- });
94
- })(this );
95
- ```
65
+ 注意,如果参数类型不是数值,` Number.isNaN ` 一律返回` false ` 。
96
66
97
67
它们与传统的全局方法` isFinite() ` 和` isNaN() ` 的区别在于,传统方法先调用` Number() ` 将非数值的值转为数值,再进行判断,而这两个新方法只对数值有效,` Number.isFinite() ` 对于非数值一律返回` false ` , ` Number.isNaN() ` 只有对于` NaN ` 才返回` true ` ,非` NaN ` 一律返回` false ` 。
98
68
0 commit comments