JavaScript原生对象之Number对象的属性和方法详解
创建Number对象的语法:
varmyNum=newNumber(value); varmyNum=Number(value);
当Number()和运算符new一起作为构造函数使用时,它返回一个新创建的Number对象。如果不用new运算符,把Number()作为一个函数来调用,它将把自己的参数转换成一个原始的数值,并且返回这个值(如果转换失败,则返回NaN)。
MAX_VALUE
MAX_VALUE属性是JavaScript中可表示的最大的数。它的近似值为1.7976931348623157x10308。最大的负数是-MAX_VALUE。
比MAX_VALUE还要大的数是Infinity。MAX_VALUE是一个静态属性,所以调用方法应该是Number.MAX_VALUE。
console.log(Number.MAX_VALUE) //1.7976931348623157e+308
MIN_VALUE
MIN_VALUE属性是JavaScript中可表示的最小的数(接近0,但不是负数)。它的近似值为5x10-324。
所有比MIN_VALUE小的数都会被转换成0。
MIN_VALUE是一个静态属性,所以调用方法应该是Number.MIN_VALUE。
NaN
NaN属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把Number对象设置为该值,来指示其不是数字值。
可以使用isNaN()全局函数来判断一个值是否是NaN值。
Number.NaN是一个特殊值,说明某些算术运算(如求负数的平方根)的结果不是数字。方法parseInt()和parseFloat()在不能解析指定的字符串时就返回这个值。对于一些常规情况下返回有效数字的函数,也可以采用这种方法,用Number.NaN说明它的错误情况。
JavaScript以NaN的形式输出Number.NaN。请注意,NaN与其他数值进行比较的结果总是不相等的,包括它自身在内。因此,不能与Number.NaN比较来检测一个值是不是数字,而只能调用isNaN()来比较。
注意:全局变量NaN和Number.NaN是一样的,NaN是一个不可配置,不可修改的属性。
console.log(parseInt("abc")); //NaN console.log(NaN===NaN); //false console.log(Number.NaN===NaN);//false console.log(isNaN(NaN)); //true console.log(isNaN(Number.NaN)); //true
NEGATIVE_INFINITY
NEGATIVE_INFINITY属性表示小于-Number.MAX_VALUE的值。该值代表负无穷大。
JavaScript显示NEGATIVE_INFINITY时使用的是-Infinity。这个值的算术行为和无穷大非常相似。例如,任何数乘无穷大结果仍为无穷大,任何数被无穷大除的结果为0。
-Infinity和Number.NEGATIVE_INFINITY相等。
varx=(-Number.MAX_VALUE)*2; vary=Number.NEGATIVE_INFINITY; console.log(x); //-Infinity console.log(y); //-Infinity console.log(x===y);//true
POSITIVE_INFINITY
POSITIVE_INFINITY属性表示大于Number.MAX_VALUE的值。该值代表正无穷大。
JavaScript显示POSITIVE_INFINITY时使用的是Infinity。这个值的算术行为和无穷大非常相似。例如,任何数乘无穷大结果仍为无穷大,任何数被无穷大除的结果为0。
Infinity和Number.POSITIVE_INFINITY相等。
isFinite()方法可以判断参数是否是有限的数字。
varx=Number.NEGATIVE_INFINITY; vary=Number.POSITIVE_INFINITY; varz=Infinity; vara="abc"; varb=123;
console.log(isFinite(x)); //false console.log(isFinite(y)); //false console.log(isFinite(z)); //false console.log(isFinite(a)); //false console.log(isFinite(b)); //true