Number

Number JavaScript 物件是允許你操作數值的包覆物件. Number 物件是以 Number() 建構子來建立的。

語法

new Number(value);

參數

value
用來建立物件的數值。

說明

Number 物件主要的用途:

  • 如果參數沒辦法被轉換成數字,則它會回傳 NaN
  • 在不是使用建構式的情境中(即不用 new (en-US) 運算子), Number 可以被用來轉換型別.

屬性

Number.EPSILON (en-US)
介於1和大於1的最小值之可表示的差。
Number.MAX_SAFE_INTEGER (en-US)
JavaScript 中 IEEE-754 雙精度範圍間的最大整數 (2^53 - 1) 。
Number.MAX_VALUE (en-US)
可表示的最大正整數。
Number.MIN_SAFE_INTEGER (en-US)
JavaScript 中 IEEE-754 雙精度範圍間的最小整數 (-(2^53 - 1)) 。
Number.MIN_VALUE (en-US)
可表示的最小值,即最靠近0的正整數?(5.00×103245.00\times10^{324})。
Number.NaN (en-US)
特別用來表示非數值的物件。
Number.NEGATIVE_INFINITY (en-US)
特別用來表示負無窮的數值。
Number.POSITIVE_INFINITY (en-US)
特別用來表示正無窮的數值。
Number.prototype
允許被添加到 Number 物件的屬性。

方法

Number.isNaN()
判斷傳入的值是不是 NaN.
Number.isFinite()
判斷傳入的值是不是一個有限的數值。
Number.isInteger() (en-US)
判斷傳入的值是不是一個整數。
Number.isSafeInteger() (en-US)
判斷傳入的值是不是在 IEEE-754 雙精度範圍間 (即介於 -(2^53 - 1)2^53 - 1之前)。
Number.parseFloat() (en-US)
這個方法和全域物件的 parseFloat() 相同。
Number.parseInt() (en-US)
這個方法和全域物件的 parseInt() 相同。

Number 實體

所有 Number 實體都會繼承其建構式的 Number.prototypeNumber 的原型物件可以被修改並作用在所有 Number 實體。

方法

Number.prototype.toExponential()
回傳以「科學記數法」表示的數值字串。
Number.prototype.toFixed()
回傳以定點表示的數值字串。
Number.prototype.toLocaleString() (en-US)
回傳以當地語言為主的數值字串。這覆寫 Object.prototype.toLocaleString() (en-US) 的方法。
Number.prototype.toPrecision() (en-US)
回傳以定點或科學記數表示的數值字串。
Number.prototype.toSource() (en-US) Non-Standard
Returns an object literal representing the specified Number object; you can use this value to create a new object. Overrides the Object.prototype.toSource() (en-US) method.
Number.prototype.toString() (en-US)
回傳以特定基數表示的數值字串。這覆寫 Object.prototype.toString() (en-US) 的方法 。
Number.prototype.valueOf() (en-US)
回傳這個物件的原始型別,即原始數值。這覆寫 Object.prototype.valueOf() (en-US)

範例

使用 Number 物件去指派值給數值變數

下列的範例使用 Number 物件的屬性去指派值給數個數值變數:

var biggestNum = Number.MAX_VALUE;
var smallestNum = Number.MIN_VALUE;
var infiniteNum = Number.POSITIVE_INFINITY;
var negInfiniteNum = Number.NEGATIVE_INFINITY;
var notANum = Number.NaN;

Number 的整數範圍

下面的範例展示了最小和最大的整數,其可以被表示成 Number 物件(細節請參考 ECMAScript standard, chapter 8.5 The Number Type):

var biggestInt = 9007199254740992;
var smallestInt = -9007199254740992;

當在解析已經被序列化的 JSON 的資料時,填入這個範圍之外的整數並且 JSON 剖析器強制將其轉成 Number 型別造成損壞是可預期的。將範圍之外的正數換成以 String 表示反倒是一個可行的替代方案。

使用 Number 轉換 Date 物件為 Unix 時間戳記

下面的範例將 Number 視為函式,並且使用它將 Date 轉換成時間戳記:

var d = new Date('December 17, 1995 03:24:00');
console.log(Number(d)); // 819199440000

轉換數值字串成數值

Number("123")     // 123
Number("12.3")    // 12.3
Number("")        // 0
Number("0x11")    // 17
Number("0b11")    // 3
Number("0o11")    // 9
Number("foo")     // NaN
Number("100a")    // NaN

規範

Specification
ECMAScript Language Specification
# sec-number-objects

瀏覽器相容性

BCD tables only load in the browser

參見