JavaScript原生对象属性和方法详解——Number对象

 

建立 Number 对象的语法:javascript

var myNum = new Number(value);
var myNum = Number(value);java

当 Number() 和运算符 new 一块儿做为构造函数使用时,它返回一个新建立的 Number 对象。若是不用 new 运算符,把 Number() 做为一个函数来调用,它将把本身的参数转换成一个原始的数值,而且返回这个值(若是转换失败,则返回 NaN)。ide

MAX_VALUE

MAX_VALUE 属性是 JavaScript 中可表示的最大的数。它的近似值为 1.7976931348623157 x 10308。最大的负数是 -MAX_VALUE。函数

比MAX_VALUE还要大的数是Infinity。MAX_VALUE是一个静态属性,因此调用方法应该是Number.MAX_VALUE。this

 

MIN_VALUE

MIN_VALUE 属性是 JavaScript 中可表示的最小的数(接近 0 ,但不是负数)。它的近似值为 5 x 10-324。spa

全部比MIN_VALUE小的数都会被转换成0。prototype

MIN_VALUE是一个静态属性,因此调用方法应该是 Number.MIN_VALUE。code

NaN

NaN 属性是表明非数字值的特殊值。该属性用于指示某个值不是数字。能够把 Number 对象设置为该值,来指示其不是数字值。对象

可使用 isNaN() 全局函数来判断一个值是不是 NaN 值。blog

Number.NaN 是一个特殊值,说明某些算术运算(如求负数的平方根)的结果不是数字。方法 parseInt() 和 parseFloat() 在不能解析指定的字符串时就返回这个值。对于一些常规状况下返回有效数字的函数,也能够采用这种方法,用 Number.NaN 说明它的错误状况。

JavaScript 以 NaN 的形式输出 Number.NaN。请注意,NaN 与其余数值进行比较的结果老是不相等的,包括它自身在内。所以,不能与 Number.NaN 比较来检测一个值是否是数字,而只能调用 isNaN() 来比较。

注意:全局变量NaN 和Number.NaN 是同样的,NaN是一个不可配置,不可修改的属性。

 

NEGATIVE_INFINITY

NEGATIVE_INFINITY 属性表示小于 -Number.MAX_VALUE 的值。该值表明负无穷大。

JavaScript 显示 NEGATIVE_INFINITY 时使用的是 -Infinity。这个值的算术行为和无穷大很是类似。例如,任何数乘无穷大结果仍为无穷大,任何数被无穷大除的结果为 0。

-Infinity 和 Number.NEGATIVE_INFINITY 相等。

 

POSITIVE_INFINITY

POSITIVE_INFINITY 属性表示大于 Number.MAX_VALUE 的值。该值表明正无穷大。

JavaScript 显示 POSITIVE_INFINITY 时使用的是 Infinity。这个值的算术行为和无穷大很是类似。例如,任何数乘无穷大结果仍为无穷大,任何数被无穷大除的结果为 0。

Infinity 和 Number.POSITIVE_INFINITY相等。

isFinite() 方法能够判断参数是不是有限的数字

 

toString()

toString() 方法可把一个 Number 对象转换为一个字符串,并返回结果。

NumberObject.toString(radix)

参数radix是可选的。规定表示数字的基数,使 2 ~ 36 之间的整数。若省略该参数,则使用基数 10,建议老是带着此参数,防止误解。例如,当 radix 为 2 时,NumberObject 会被转换为二进制值表示的字符串。

当调用该方法的对象不是 Number 时抛出 TypeError 异常。

 

toLocaleString()

toLocaleString() 方法可把一个 Number 对象转换为本地格式的字符串。

数字的字符串表示,由实现决定,根据本地规范进行格式化,可能影响到小数点或千分位分隔符采用的标点符号。

当调用该方法的对象不是 Number 时抛出 TypeError 异常。

更多参数能够参考:MDN

 

toFixed()

toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。

NumberObject.toFixed(num)

参数num是必需的。规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现能够支持更大的数值范围。若是省略了该参数,将用 0 代替。

返回 NumberObject 的字符串表示,不采用指数计数法,小数点后有固定的 num 位数字。若是必要,该数字会被舍入,也能够用 0 补足,以便它达到指定的长度。若是 num 大于 le+21,则该方法只调用 NumberObject.toString(),返回采用指数计数法表示的字符串。

当 num 过小或太大时抛出异常 RangeError。0 ~ 20 之间的值不会引起该异常。有些实现支持更大范围或更小范围内的值。当调用该方法的对象不是 Number 时抛出 TypeError 异常。

注意:因为对浮点数的处理,toFixed() 方法展示出的结果并非所谓的“四舍五入”或者是“四舍六入五成双”,而是四舍,六入,五的表现十分混乱。

建议本身写方法来替换toFixed()默认行为,能够参考:SO上的讨论

 

toExponential()

toExponential() 方法可把对象的值转换成指数计数法。

NumberObject.toExponential(num)

参数num是可选的。规定指数计数法中的小数位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现能够支持更大的数值范围。若是省略了该参数,将使用尽量多的数字。

返回 NumberObject 的字符串表示,采用指数计数法,即小数点以前有一位数字,小数点以后有 num 位数字。该数字的小数部分将被舍入,必要时用 0 补足,以便它达到指定的长度。

当 num 过小或太大时抛出异常 RangeError。0 ~ 20 之间的值不会引起该异常。有些实现支持更大范围或更小范围内的值。当调用该方法的对象不是 Number 时抛出 TypeError 异常。

 

toPrecision()

toPrecision() 方法可将数值格式化为一个十进制数形式的字符串。

NumberObject.toPrecision(num)

参数num是可选的。用于控制数字的精度。该参数是 1 ~ 21 之间(且包括 1 和 21)的值。若是省略了该参数,则调用方法 toString(),而不是把数字转换成十进制的值。

相关文章
相关标签/搜索