Number 物件是原始數值的包裝物件。
Number 建立方式new Number()。
var num = new Number(value);
注意:如果一個參數值不能轉換為一個數字將回傳NaN (非數字值)。
三、Number 物件方法
方法 | 描述 |
---|---|
isFinite() | 偵測指定參數是否為無限大。 |
isInteger() | 偵測指定參數是否為整數。 |
isNaN() | 檢測指定參數是否為NaN。 |
toFixed(x) | 把數字轉換成字串,結果的小數點後面有指定位數的數字。 |
toPrecision(x) | 把數字格式化為指定的長度。 |
toString() | 把數字轉換為字串,使用指定的基底數。 |
valueOf() | 傳回一個Number 物件的基本數字值。 |
isFinite() 函數用於偵測指定參數是否為無限大。
提示:如果number 是NaN(非數字),或是正、負無窮大的數,則回傳false。
Number.isFinite() 與全域的isFinite() 函數不同,全域的isFinite() 會先把偵測值轉換為Number ,然後在偵測。
Number.isFinite() 不會將偵測值轉換為Number對象,如果偵測值不是Number 類型,則傳回false。
Number.isFinite(123) //true Number.isFinite(-1.23) //true Number.isFinite(5-2) //true Number.isFinite(0) //true Number.isFinite('123') //false Number.isFinite('Hello') //false Number.isFinite('2005/12/12') //false Number.isFinite(Infinity) //false Number.isFinite(-Infinity) //false Number.isFinite(0 / 0) //false
isInteger() 函數用於偵測指定參數是否為無整數,如果是整數回傳true,否則傳回false。
Number.isInteger(0); // true Number.isInteger(1); // true Number.isInteger(-100000); // true Number.isInteger(0.1); // false Number.isInteger(Math.PI); // false Number.isInteger(Infinity); // false Number.isInteger(-Infinity); // false Number.isInteger("10"); // false Number.isInteger(true); // false Number.isInteger(false); // false Number.isInteger([1]); // false
NaN 是"Not-a-Number" 的簡寫,字面上翻譯為不是一個數字。
在JavaScript 中,NaN 是一個不合法的數字。
Number.isNaN() 方法用於判斷傳遞的值是否為NaN,並且檢查其類型是否為Number,如果值為NaN 且類型為Number,則傳回true,否則傳回false。
在JavaScript 中,NaN 最特別的地方就是,我們不能使用相等運算子== 和=== 來判斷一個值是否是NaN,因為NaN == NaN 和NaN === NaN 都會回傳false。因此,必須要有一個判斷值是否為NaN 的方法。
和全域函數isNaN() 相比,Number.isNaN() 不會自行將參數轉換成數字,只有在參數是值為NaN 的數字時,才會傳回true。
Number.isNaN(NaN); // true Number.isNaN(Number.NaN); // true Number.isNaN(0 / 0) // true // 下面這幾個如果使用全域的isNaN() 時,會回傳true。 Number.isNaN("NaN"); // false,字串"NaN" 不會被隱式轉換成數字NaN。 Number.isNaN(undefined); // false Number.isNaN({}); // false Number.isNaN("blabla"); // false // 下面的都回傳false Number.isNaN(true); Number.isNaN(null); Number.isNaN(37); Number.isNaN("37"); Number.isNaN("37.37"); Number.isNaN(""); Number.isNaN(" ");
toFixed() 方法可將Number 四捨五入為指定小數位數的數字。
//把數字轉換為字串,結果的小數點後面有指定位數的數字: var num = 5.56789; var n=num.toFixed(2); //輸出結果: 5.57
toPrecision() 方法傳回指定長度的數值字串。
toPrecision() 方法以指定的精確度傳回該數值物件的字串表示,四捨五入至precision 參數指定的顯示數字位數。
// 把數字格式化為指定的長度: var num = new Number(13.3714); var n=num.toPrecision(2); // 輸出結果: 13
數字的字串表示。例如,當radix 為2 時,NumberObject 會被轉換為二進位值表示的字串。
valueOf() 方法可以字串回傳數字。