JS中,調用Number()主要有兩種方式,一是作為一個 function 將任意類型的數據轉換成數值,二是作為一個類,通過new 生成一個數值對象。 其中第一種方式更常用。 用法一:function Number(value) 將一個任意類型的數據轉換成數值,無法轉換的則返回 NaN,轉換規則類似 ...
JS中,調用Number()主要有兩種方式,一是作為一個 function 將任意類型的數據轉換成數值,二是作為一個類,通過new 生成一個數值對象。
其中第一種方式更常用。
用法一:function
Number(value)
將一個任意類型的數據轉換成數值,無法轉換的則返回 NaN,轉換規則類似於類型隱式轉換,與 parseFloat
略有差異。
轉換規則如下:
值 Value | 結果 Result |
---|---|
undefined | NaN |
null | 0 |
false | 0 |
true | 1 |
number | 原樣輸出 |
string | 忽略前後空格,碰到第一個非數字字元為止,空字元串返回 0 |
object | 調用內部 ToPrimitive(value, Number),如果是 Date 對象,返回從 1970年1月1日至Date的毫秒數 |
用法二:constructor
new Number(num)
作為一個構造器,生成一個 Number 實例, wraps num (after converting it to a number).
如:
> typeof new Number(3)
'object'
既然是對象,肯定有相關的屬性和方法,Number也不例外。
屬性 Properties
- Number.MAX_VALUE 表示的最大正數值
> Number.MAX_VALUE
1.7976931348623157e+308
- Number.MIN_VALUE 表示的最小正數值
> Number.MIN_VALUE
5e-324
- Number.NaN 與全局 NaN 等同
- Number.NEGATIVE_INFINITY 與 -Infinity 等同
- Number.POSITIVE_INFINITY 與 Infinity 等同
方法 Methods
所有原生的數值相關函數均被保存在對象原型( Number.prototype )里,可以直接調用。
- 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?)