JS中,調(diào)用Number()主要有兩種方式,一是作為一個(gè) function 將任意類型的數(shù)據(jù)轉(zhuǎn)換成數(shù)值,二是作為一個(gè)類,通過new 生成一個(gè)數(shù)值對(duì)象。
其中第一種方式更常用。
用法一:function
Number(value)
將一個(gè)任意類型的數(shù)據(jù)轉(zhuǎn)換成數(shù)值,無(wú)法轉(zhuǎn)換的則返回 NaN,轉(zhuǎn)換規(guī)則類似于類型隱式轉(zhuǎn)換,與 parseFloat
略有差異。
轉(zhuǎn)換規(guī)則如下:
值 Value | 結(jié)果 Result |
---|---|
undefined | NaN |
null | 0 |
false | 0 |
true | 1 |
number | 原樣輸出 |
string | 忽略前后空格,碰到第一個(gè)非數(shù)字字符為止,空字符串返回 0 |
object | 調(diào)用內(nèi)部 ToPrimitive(value, Number),如果是 Date 對(duì)象,返回從 1970年1月1日至Date的毫秒數(shù) |
用法二:constructor
new Number(num)
作為一個(gè)構(gòu)造器,生成一個(gè) Number 實(shí)例, wraps num (after converting it to a number).
如:
> typeof new Number(3) 'object'
既然是對(duì)象,肯定有相關(guān)的屬性和方法,Number也不例外。
屬性 Properties
Number.MAX_VALUE 表示的最大正數(shù)值
> Number.MAX_VALUE 1.7976931348623157e+308
Number.MIN_VALUE 表示的最小正數(shù)值
> Number.MIN_VALUE 5e-324
Number.NaN 與全局 NaN 等同
Number.NEGATIVE_INFINITY 與 -Infinity 等同
Number.POSITIVE_INFINITY 與 Infinity 等同
方法 Methods
所有原生的數(shù)值相關(guān)函數(shù)均被保存在對(duì)象原型( Number.prototype )里,可以直接調(diào)用。
Number.prototype.toFixed(fractionDigits?)
> 0.0000003.toFixed(10) '0.0000003000'
Number.prototype.toPrecision(precision?)
> 1234..toPrecision(3) '1.23e+3'
Number.prototype.toString(radix?)
> 15..toString(2) '1111' > 65535..toString(16) 'ffff'
Number.prototype.toExponential(fractionDigits?)