詳解javaScript中Number數字類型的使用
前言
Number和Math都屬于JavaScript中的內置對象,Number數字類型作為基礎數據類型,我們在開發(fā)過程中會經常用到,包括數字精度的格式化,還有字符串轉換成數字等操作。
Number數字
自帶屬性值
Number.EPSILON 兩個可表示(representable)數之間的最小間隔。
Number.MAX_SAFE_INTEGER JavaScript 中最大的安全整數 (2^53 - 1)。
Number.MAX_VALUE 能表示的最大正數。最小的負數是 -MAX_VALUE。
Number.MIN_SAFE_INTEGER JavaScript 中最小的安全整數 (-(2^53 - 1)).
Number.MIN_VALUE 能表示的最小正數即最接近 0 的正數 (實際上不會變成 0)。最大的負數是 -MIN_VALUE。
Number.NaN 特殊的“非數字”值。
Number.NEGATIVE_INFINITY 特殊的負無窮大值,在溢出時返回該值。
Number.POSITIVE_INFINITY 特殊的正無窮大值,在溢出時返回該值。
基礎使用
new Number實例化數字對象和Number強轉數字字符串,兩個值的并不相等
var value1 = new Number("123"); this.value1 = value1; console.log(`value1 === 123 is ${value1 === 123}`); // value1 === 123 is false var value2 = Number("123"); this.value2 = value2; console.log(`value2 === 123 is ${value2 === 123}`); // value2 === 123 is true // 判斷Number類型 console.log(value1 instanceof Number); console.log(value2 instanceof Number);
Number將轉換字符串為數字
Number("123"); // 123 Number("12.3"); // 12.3 Number("12.00"); // 12 Number("123e-1"); // 12.3 Number(""); // 0 Number(null); // 0 Number("0x11"); // 17 Number("0b11"); // 3 Number("0o11"); // 9 Number("foo"); // NaN Number("100a"); // NaN Number("-Infinity"); //-Infinity
Number判斷數字是否是NAN
let number1 = new Number("123"); let number2 = 123; let number3 = "string"; let number4 = null; console.log(Number.isNaN(number1)); // false console.log(Number.isNaN(number2)); // false console.log(Number.isNaN(number3)); // false console.log(Number.isNaN(number4)); // false console.log(Number.isNaN(NaN)); // true
Number.isFinite 是否是一個有窮數
console.log(Number.isFinite(1 / 0)); // false console.log(Number.isFinite(10 / 5)); // true console.log(Number.isFinite(0 / 0)); // false
Number.isInteger 判斷給定的參數是否為整數
function checkInteger(x, y) { if (Number.isInteger(y / x)) { return "整數"; } return "非整數"; } console.log(checkInteger(5, 10)); // "整數" console.log(checkInteger(5, 11)); // "非整數"
Number.isSafeInteger 判斷傳入的參數值是否是一個“安全整數”(safe integer)
備注:
Number.isSafeInteger() 方法用來判斷傳入的參數值是否是一個“安全整數”(safe integer)。
一個安全整數是一個符合下面條件的整數:
可以準確地表示為一個IEEE-754雙精度數字,
其IEEE-754表示不能是舍入任何其他整數以適應IEEE-754表示的結果。
比如,2^53 - 1 是一個安全整數,它能被精確表示,在任何 IEEE-754 舍入模式(rounding mode)下,沒有其他整數舍入結果為該整數。作為對比,2^53 就不是一個安全整數,它* 能夠使用 IEEE-754 表示,但是 2^53 + 1 不能使用 IEEE-754 直接表示,在就近舍入(round-to-nearest)和向零舍入中,會被舍入為 2^53。
安全整數范圍為 -(2^53 - 1)到 2^53 - 1 之間的整數,包含 -(2^53 - 1)和 2^53 - 1。
Number.isSafeInteger(3); // true Number.isSafeInteger(Math.pow(2, 53)); // false Number.isSafeInteger(Math.pow(2, 53) - 1); // true Number.isSafeInteger(NaN); // false Number.isSafeInteger(Infinity); // false Number.isSafeInteger("3"); // false Number.isSafeInteger(3.1); // false Number.isSafeInteger(3.0); // true
Number.parseFloat 將字符串數字轉成數字類型
備注:
- 方法可以把一個字符串解析成浮點數。該方法與全局的 parseFloat() 函數相同,并且處于 ECMAScript 6 規(guī)范中(用于全局變量的模塊化)。
- 給定值被解析成浮點數,如果無法被解析成浮點數,則返回NaN
function checkFloat(r) { return parseFloat(r); } console.log(checkFloat(4.567)); // 4.567 console.log(checkFloat("4.567abcdefgh")); // 4.567 console.log(checkFloat("abcdefgh")); // NaN
Number.parseInt 將數字字符串轉成整數
/** * * Number.parseInt() * 方法依據指定基數 [ 參數 radix 的值],把字符串 [ 參數 string 的值] 解析成整數。 * @params string:要解析的值。 如果此參數不是字符串,則使用ToString抽象操作將其轉換為字符串。忽略此參數中的前導空格。 * @params radix:一個介于2到36之間的整數,代表字符串的基數(數學數字系統(tǒng)中的基)。小心-這并不是默認為10。 * 從給定字符串中解析的整數。如果基數小于11,且第一個非空白字符不能轉換為數字,則返回NaN。 * * */ function checkInt(x, base) { const parsed = parseInt(x, base); if (isNaN(parsed)) { return 0; } return parsed * 100; } console.log(checkInt(" 0xF", 16)); // 1500 console.log(checkInt("321", 2)); // 0
Number.prototype.toFixed() 把數字轉換為字符串,返回小數點后有指定位數的數字
var numObj = 5.123456; var n = numObj.toFixed(2); // 5.12
Number.prototype.toPrecision() 以指定的精度返回該數值對象的字符串表示
var numObj = 5.123456; console.log("numObj.toPrecision() is " + numObj.toPrecision()); // 輸出 5.123456 console.log("numObj.toPrecision(5) is " + numObj.toPrecision(5)); // 輸出 5.1235 console.log("numObj.toPrecision(2) is " + numObj.toPrecision(2)); // 輸出 5.1 console.log("numObj.toPrecision(1) is " + numObj.toPrecision(1)); // 輸出 5 // 注意:在某些情況下會以指數表示法返回 console.log((1234.5).toPrecision(2)); // "1.2e+3"
Number 轉換 Date 對象
var d = new Date("December 17, 1995 03:24:00"); console.log(Number(d));
總結
在Number數字類型中,使用最多的應該是:
- isNaN判斷數字是否是非數字NAN
- parseFloat將數字字符串轉成數字類型
- parseInt 解析字符串轉成整數
- toPrecision作為數字的方法,返回該數值的指定精度,包含小數位
- toFixed 返回指定小數點精度的數字,需要注意和toPrecision區(qū)分開來
源碼地址
以上就是詳解javaScript中Number數字類型的使用的詳細內容,更多關于javaScript Number數字類型的資料請關注腳本之家其它相關文章!
相關文章
詳解BootStrap中Affix控件的使用及保持布局的美觀的方法
Affix是BootStrap中的一個很有用的控件,他能夠監(jiān)視瀏覽器的滾動條的位置并讓你的導航始終都在頁面的可視區(qū)域。本文重點給大家介紹BootStrap中Affix控件的使用及保持布局的美觀的方法,感興趣的朋友一起看看吧2016-07-07Bootstrap模態(tài)框(modal)垂直居中的實例代碼
這篇文章主要介紹了Bootstrap模態(tài)框(modal)垂直居中的實例代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-08-08淺談JS對html標簽的屬性的干預以及對CSS樣式表屬性的干預
下面小編就為大家?guī)硪黄獪\談JS對html標簽的屬性的干預以及對CSS樣式表屬性的干預。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06