数值范围
因为内存的限制,ECMAScript不能保存世界上所有的数值,ECMAScript表示的最小数值保存在Number.MIN_VALUE中,最大数值保存在Number.MAX_VALUE中。如果某次计算超出计算机数值范围的值,将会自动转换成Infinity。如果是正数,则会转换成Infinity(正无穷),如果是负值,则会转换成-Infinity(负无穷)。
正或负的Infinity值是无法参与计算的,所以你可以用isFinite()函数判断数值是不是有穷的。
如:
var result=Number.MAX_VALUE+Number.MAX_VALUE;
console.log(isFinite(result)) //false
NaN
NaN,即非数值(Not a Number)是一个特殊的数值,这个问数值表示一个本来要返回数值的操作数未返回数值的情况。在ECMASCript中,任何数值除以非数值都会返回NaN。这样不会抛出错误,不会影响其他代码的执行。
NaN本身有两个特点:
任何涉及NaN的操作都会返回NaN。
NaN与任何值都不想等,包括NaN本身。
例如,下面代码会返回false:
console.log(NaN==NaN) //false
我们可以用isNaN()判断一个参数是否“不是数值”。isNaN()在接收一个值后,会尝试把这个值转换为数值。任何不能被转换成数值的都会导致这个函数转换成true。童靴们看一下下面的例子:
console.log(isNaN(10)) //false(10是一个数值)
console.log(isNaN('10')) //false(可以被转换成数值10)
console.log(isNaN('blue')) //true(不能转换成数值)
console.log(isNaN(true) //false(可以转换成数值1)
以上的例子,童靴们可以打开编辑器测试一下。
爱学习的孩子运气不会差哦~
关注小白前端,持续收到文章推送!