Number

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

語法

js
new Number(value)

參數

value

用來建立物件的數值。

說明

Number 物件主要的用途:

  • 如果參數沒辦法被轉換成數字,則它會回傳 NaN
  • 在不是使用建構式的情境中(即不用 new 運算子), 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 (en-US)

允許被添加到 Number 物件的屬性。

方法

Number.isNaN() (en-US)

判斷傳入的值是不是 NaN.

Number.isFinite() (en-US)

判斷傳入的值是不是一個有限的數值。

Number.isInteger() (en-US)

判斷傳入的值是不是一個整數。

Number.isSafeInteger() (en-US)

判斷傳入的值是不是在 IEEE-754 雙精度範圍間 (即介於 -(2^53 - 1)2^53 - 1之前)。

Number.parseFloat() (en-US)

這個方法和全域物件的 parseFloat() (en-US) 相同。

Number.parseInt() (en-US)

這個方法和全域物件的 parseInt() 相同。

Number 實體

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

方法

Number.isNaN() (en-US)

判斷傳入的值是不是 NaN.

Number.isFinite() (en-US)

判斷傳入的值是不是一個有限的數值。

Number.isInteger() (en-US)

判斷傳入的值是不是一個整數。

Number.isSafeInteger() (en-US)

判斷傳入的值是不是在 IEEE-754 雙精度範圍間 (即介於 -(2^53 - 1)2^53 - 1之前)。

Number.parseFloat() (en-US)

這個方法和全域物件的 parseFloat() (en-US) 相同。

Number.parseInt() (en-US)

這個方法和全域物件的 parseInt() 相同。

範例

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

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

js
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):

js
var biggestInt = 9007199254740992;
var smallestInt = -9007199254740992;

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

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

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

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

轉換數值字串成數值

js
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

參見