JavaScript中数字是不区分整数值与浮点数值的,在JavaScript中所有的数均使用64位的浮点格式来存储和表示(IEEE 754标准)。所以数值最大是:±1.7976931348623157 X 10^308,最小是±5X10^-324,可以表示的整数范围是-9 007 199 254 740 992 ~ 9 007 199 254 740 992 (对应的是-2^53~2^53)包含边界值。
注意这里说的最大/小,准确的应该说是:在正数和负数范围内可以准确得到的最大最小的数
比如1.7976931348623157 X 10^308 是可以得到的最大的正数,也就是 JavaScript 中的MAX_VALUE,任何大于这个的在 js 中都是 Infinity,需要注意的是,他的负数,从数学上可以说是最小值,但是在存储上并不是最小的值
而 5X10^-324 是可以得到的最小的 最接近于 0 的最小的值,js 中的 MIN_VALUE 的值约为 5e-324。小于 MIN_VALUE (“underflow values”) 的值将会转换为 0, 注意,当这个数值表示为负数的时候 他是负数范围内最大的数值
注意了啊,上面的有隐藏的问题的,结尾有相关的解释哈
注意:在对JS中的数值进行位操作的时候会自动把64位转化为32进行操作(由于运算符的自身限制,其只能对32位进行操作),在对小数进行位操作 比如左移零位,小数会丢弃小数部分转化成整数, 所以以后看到
1.25 >> 0
,就知道大佬是想做一个取整操作啦 这里尤其注意的一点通过位运算来做取整操作,会有溢出风险,数值会变,所以请谨慎使用 。