數值的擴展

ES6傳達的一個比較重要的思想,一個是儘量的減小全局的方法而把它移植到特定的對象上去,另外一個是在一些判斷的場景下,儘量的減小隱式的轉換使得獲得的結果更爲安全。瀏覽器

1:二進制、八進制表示法

/* 0b(0B) 二進制*/
    Number('0b111');  
    //  7
     
    
    /* 0o(0O) 八進制*/
    Number('0o10');
    //  8

2:Number.isFinite,檢查一個數值是否爲有限,不作隱式轉換

Number.isFinite(15);
    // true 
    
    Number.isFinite(NaN);
    // false 
    
    Number.isFinite(Infinity);
    // false 
    
    Number.isFinite(true);
    // false 
    
    isFinite("25");
    // true

3:Number.isNaN,檢查一個值是否爲NaN,不作隱式轉換,在瀏覽器全局的方法中移植的

Number.isNaN(15);
    // false
    
    Number.isNaN(NaN);
    // true  
    
    Number.isNaN('NaN');
    // false 
    
    isNaN('NaN');
    // true

4:Number.parseInt、Number.parseFloat,全局方法移植(不能去掉隱式轉換)

5:Number.isInteger,判斷一個數值是否爲整數,不作隱式轉換

Number.isInteger(25);
    // true 
    
    Number.isInteger('15');
    // false 
     
    Number.isInteger(3.0000000000000002);
    // true 
    
    0.1 + 0.2 === 0.3
    // false
    
    0.1 + 0.2 - 0.3 < Number.EPSILON;
    // true

6:Number.EPSILON,JavaScript 可以表示的最小精度

Number.EPSILON === Math.pow(2, -52);   //最小精度
    // true
    
    0.1 + 0.2 === 0.3
    // false

7:Number.isSafeInteger,安全 '整數'

Math.pow(2, 53) === Math.pow(2, 53) + 1
    // true  
    
    Number.isSafeInteger('a');
    // false 
    
    Number.isSafeInteger(null);
    // false 
    
    Number.isSafeInteger(NaN);
    // false 
    
    Number.isSafeInteger(3);
    // true 
    
    Number.isSafeInteger(1.2);
    // false

8:Math.trunc,去除小數部分,Number隱式轉換

Math.trunc(-4.9);
    // -4 
    
    Math.trunc('123.456');
    // 123 
     
    Math.trunc('week');
    // NAN

9:Math.sign,判斷正數、負數與0,Number隱式轉換

  • 參數爲正數 - 返回+1
  • 參數爲負數 - 返回 - 1
  • 參數爲 0 - 返回0
  • 參數爲 - 0 - 返回 - 0
  • 其餘值 - 返回NaN
    Math.sign(true);
        // +1 
    
        Math.sign(false);
        // 0 
    
        Math.sign(null);
        // 0 
    
        Math.sign('9');
        // 9

10:Math.cbrt,立方根,Number隱式轉換

11:對數方法,Number隱式轉換

12:指數運算符

2 ** 2
  // 4 
  
  2 ** 3
  // 8 
  
  2 ** 3 ** 2    //兩個星號表明一個指數越算,從後往前算
  // 2 ** (3 ** 2)
相關文章
相關標籤/搜索