进制表示
0b(0B)表示二进制,0o(0O)表示八进制
Number.isFinite()、Number.isNaN()
Number.isFinite 用来检查一个数值是否为有限的。
1 2 3 4 5 6
| Number.isFinite(NaN) Number.isFinite(Infinity) Number.isFinite(-Infinity) Number.isFinite("15") Number.isFinite("foo") Number.isFinite(true)
|
ES5 部署 Number.isFinite()方法:
1 2 3 4 5 6 7 8 9 10 11 12
| ;(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。
1 2 3 4 5
| Number.isNaN(NaN) Number.isNaN("15") Number.isNaN(9 / NaN) Number.isNaN("true" / 0) Number.isNaN("true" / "true")
|
ES5 部署 Number.isNaN()方法:
1 2 3 4 5 6 7 8 9 10 11 12
| ;(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)
|
Number.parseInt()、Number.parseFloat()
ES6 将全局方法 parseInt 和 parseFloat 移植到了 Number 对象上面,行为完全不变。
Number.isInteger()
Number.isInteger 判断一个值是否为整数。在 JavaScript 内部,整数和浮点数是相同的储存方法,所以 3 和 3.0 视为同一个值。
1 2
| Number.isInteger("15") Number.isInteger(true)
|
ES5 部署 Number.isInteger()方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| ;(function (global) { var floor = Math.floor, isFinite = global.isFinite
Object.defineProperty(Number, "isInteger", { value: function isInteger(value) { return ( typeof value === "number" && isFinite(value) && floor(value) == value ) }, configurable: true, enumerable: false, writable: true, }) })(this)
|
Number.EPSILON
ES6 在 Number 对象上面新增一个极小的常量–Number.EPSILON。
浮点数计算是不精确的,但是如果这个误差可以小于 Number.EPSILON,就可以认为得到了正确的结果。
Number.isSafeInteger()
JavaScript 能够准确表示的整数范围在$-2^{53}$到$2^{53}$之间(不含两个端点),超过这个范围就无法精确表示。
ES6 引入了 Number.MAX_SAFE_INTEGER 和 Number.MIN_SAFE_INTEGER 两个常量来表示这个范围的上下限