1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-29 05:42:20 +00:00

docs: edit number

This commit is contained in:
ruanyf 2018-01-16 13:14:59 +08:00
parent c568f10710
commit 67776aa4a4

View File

@ -35,7 +35,7 @@ Number('0o10') // 8
ES6 在`Number`对象上,新提供了`Number.isFinite()``Number.isNaN()`两个方法。 ES6 在`Number`对象上,新提供了`Number.isFinite()``Number.isNaN()`两个方法。
`Number.isFinite()`用来检查一个数值是否为有限的finite `Number.isFinite()`用来检查一个数值是否为有限的finite,即不是`Infinity`
```javascript ```javascript
Number.isFinite(15); // true Number.isFinite(15); // true
@ -48,22 +48,7 @@ Number.isFinite('15'); // false
Number.isFinite(true); // false Number.isFinite(true); // false
``` ```
ES5 可以通过下面的代码,部署`Number.isFinite`方法。 注意,如果参数类型不是数值,`Number.isFinite`一律返回`false`
```javascript
(function (global) {
var global_isFinite = global.isFinite;
Object.defineProperty(Number, 'isFinite', {
value: function isFinite(value) {
return typeof value === 'number' && global_isFinite(value);
},
configurable: true,
enumerable: false,
writable: true
});
})(this);
```
`Number.isNaN()`用来检查一个值是否为`NaN` `Number.isNaN()`用来检查一个值是否为`NaN`
@ -73,26 +58,11 @@ Number.isNaN(15) // false
Number.isNaN('15') // false Number.isNaN('15') // false
Number.isNaN(true) // false Number.isNaN(true) // false
Number.isNaN(9/NaN) // true Number.isNaN(9/NaN) // true
Number.isNaN('true'/0) // true Number.isNaN('true' / 0) // true
Number.isNaN('true'/'true') // true Number.isNaN('true' / 'true') // true
``` ```
ES5 通过下面的代码,部署`Number.isNaN()` 注意,如果参数类型不是数值,`Number.isNaN`一律返回`false`
```javascript
(function (global) {
var global_isNaN = global.isNaN;
Object.defineProperty(Number, 'isNaN', {
value: function isNaN(value) {
return typeof value === 'number' && global_isNaN(value);
},
configurable: true,
enumerable: false,
writable: true
});
})(this);
```
它们与传统的全局方法`isFinite()``isNaN()`的区别在于,传统方法先调用`Number()`将非数值的值转为数值,再进行判断,而这两个新方法只对数值有效,`Number.isFinite()`对于非数值一律返回`false`, `Number.isNaN()`只有对于`NaN`才返回`true`,非`NaN`一律返回`false` 它们与传统的全局方法`isFinite()``isNaN()`的区别在于,传统方法先调用`Number()`将非数值的值转为数值,再进行判断,而这两个新方法只对数值有效,`Number.isFinite()`对于非数值一律返回`false`, `Number.isNaN()`只有对于`NaN`才返回`true`,非`NaN`一律返回`false`