数值范围
由于内存的限制,ECMAScript并不能保存世界上所有的数值。ECMAScript能够保存的最小数值保存在Number.MIN_VALUE中,在大多数浏览器中,这个值是5e-324。
能够表示的最大数值保存在Number.MAX_VALUE中,在大多数浏览器中,这个数值将被自动转换成特殊的Infinity值。
具体来说,如果这个数值是负数,则会被转换成-Infinity(负无穷),如果这个数值是正数,则会被转换成Infinity(正无穷)。
如果某次计算返回了正或负的Infinity值,那么该值将无法继续参与下一次的计算,因为Infinity不是能够参与计算的数值。要想确定一个数值是不是有穷的,可以使用isFinite()函数,这个函数在参数谓语最小与最大数值之间时会返回true,如下例子所示:
var result = Number.MAX_VALUE + Number.MAX_VALUE; alert(isFinite(result)); //false
访问Number.NEGATIVE_INFINITY和Number.POSITIVE_INFINITY也可以得到负和正的Infinity的值。
尽管在计算中很少出现某些值超出标识范围的情况,但在执行极小或极大数值的计算时,检测监控这些值是必要的。