1. 程式人生 > >es6學習筆記(五)

es6學習筆記(五)

數值的擴充套件

新增方法

  • 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 物件的擴充套件
    1. 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
      
    2. Math.sign方法用來判斷一個數到底是正數、負數、還是零。對於非數值,會先將其轉換為數值,對於那些無法轉為數值的值,會返回NaN
      它會返回五種值:
      a.引數為正數,返回+1;
      b.引數為負數,返回-1;
      c.引數為 0,返回0;
      d.引數為-0,返回-0;
      e.其他值,返回NaN。
    3. Math.cbrt方法用於計算一個數的立方根。對於非數值,Math.cbrt方法內部也是先使用Number方法將其轉為數值

方法調整

  • ES6 將全域性方法parseInt()和parseFloat(),移植到Number物件上面,行為完全保持不變
    1. Number.parseInt()
    2. Number.parseFloat()