1、数字的范围:
最大整数是:2^53 – 1, 即9007199254740991,在ES6中的定义是,Number.MAX_SAFE_INTEGER
最小整数是:-9007199254740991,在ES6中的定义是,Number.MIN_SAFE_INTEGER
2、检测一个值是不是整数,可以使用ES6中的Number.isInteger()方法
Number.isInteger(42) // true
Number.isInteger(42.00) // true
Number.isInteger(42.02) // false
3、NaN
3.1
、一般定义:如果数学运算的操作数不是数字类型(或者无法解析为常规的十进制或十六进制数字),就无法返回一个有效的数字,这种情况下的返回值就是NaN
3.2
、NaN不是一个数字,将它理解为无效数值,可能会更准确一点
3.3
、换句话来说就是,NaN是一个不是数字的数字
例子为:
var c = 3 / 'foo'
console.log(c) // NaN
但是
console.log(typeof(c) === 'number') // true
所以说NaN是一个不是数字的数字,比较绕口
3.4
、检查一个变量的值是否为NaN,不可以如同null、undefined一样,因为NaN是一个特殊值,它和本身不相等,是唯一一个非自反
console.log(undefined === undefined) // true
console.log(null === null) // true
NaN是非自反
console.log(NaN === NaN) // false
console.log(NaN != NaN) // true
所以我们只能通过其他方式进行判断
(1):isNaN判断方法(有弊端)
一般正常的判断为:
var c = 3 / 'foo'
console.log(isNaN(c)) // true
结果是对的
但是:
var d = 'foo'
console.log(isNaN(d)) // true
很明显, ‘foo’不是一个数字,但是也绝不是NaN
(2):Number.isNaN判断方法(比较好用)
var c = 3 / 'foo'
console.log(Number.isNaN(c)) // true
var d = 'foo'
console.log(Number.isNaN(d)) // false