es6學習筆記(五)
阿新 • • 發佈:2018-12-12
數值的擴充套件
新增方法
- ES6 提供了二進位制和八進位制數值的新的寫法,分別用字首0b(或0B)和0o(或0O)表示。
0b111110111 === 503 // true 0o767 === 503 // true //如果要將0b和0o字首的字串數值轉為十進位制,要使用Number方法 Number('0b111') // 7 Number('0o10') // 8
- Number.isFinite()用來檢查一個數值是否為有限的,對於非數值一律返回false,而不會將非數值轉換成數值
Number.isFinite('15'); //false
- Number.isNaN()用來檢查一個值是否為NaN,只有對於NaN才返回true,非NaN一律返回false
Number.isNaN('15'); //false
- Number.isInteger()用來判斷一個數值是否為整數
//JavaScript 內部,整數和浮點數採用的是同樣的儲存方法,所以 25 和 25.0 被視為同一個值 Number.isInteger(25) // true Number.isInteger(25.0) // true //如果引數不是數值,Number.isInteger返回false Number.isInteger() // false Number.isInteger(null) // false Number.isInteger('15') // false Number.isInteger(true) // false //如果對資料精度的要求較高,不建議使用Number.isInteger()判斷一個數值是否為整數 //小數的精度達到了小數點後16個 Number.isInteger(3.0000000000000002) // true
- Number.EPSILON()它表示 1 與大於 1 的最小浮點數之間的差,可以用來設定“能夠接受的誤差範圍”
function withinErrorMargin (left, right) { return Math.abs(left - right) < Number.EPSILON * Math.pow(2, 2); } 0.1 + 0.2 === 0.3 // false withinErrorMargin(0.1 + 0.2, 0.3) // true 1.1 + 1.3 === 2.4 // false withinErrorMargin(1.1 + 1.3, 2.4) // true
- Math 物件的擴充套件
- Math.trunc方法用於去除一個數的小數部分,返回整數部分。
//對於非數值,Math.trunc內部使用Number方法將其先轉為數值 Math.trunc('123.456') // 123 Math.trunc(true) //1 Math.trunc(false) // 0 Math.trunc(null) // 0 //對於空值和無法擷取整數的值,返回NaN Math.trunc(NaN); // NaN Math.trunc('foo'); // NaN Math.trunc(); // NaN Math.trunc(undefined) // NaN
- Math.sign方法用來判斷一個數到底是正數、負數、還是零。對於非數值,會先將其轉換為數值,對於那些無法轉為數值的值,會返回NaN
它會返回五種值:
a.引數為正數,返回+1;
b.引數為負數,返回-1;
c.引數為 0,返回0;
d.引數為-0,返回-0;
e.其他值,返回NaN。 - Math.cbrt方法用於計算一個數的立方根。對於非數值,Math.cbrt方法內部也是先使用Number方法將其轉為數值
- Math.trunc方法用於去除一個數的小數部分,返回整數部分。
方法調整
- ES6 將全域性方法parseInt()和parseFloat(),移植到Number物件上面,行為完全保持不變
- Number.parseInt()
- Number.parseFloat()