你不知道的JavaScript中卷 - 【值】

1、檢測null

// 檢測 a 是不是 null

(!a && typeof a === 'object'); // true

2、函數不僅是對象,還有屬性

let a = function(b, c, d) {};
a.length; // 3

3、typeof 一個未定義的變量,不報錯,返回undefined

var a;
typeof a; // "undefined"
typeod b; // "undefined"

4、數組

4.1  delete運算符可以將單元從數組中刪除,但刪除後,數組的length不會發生變化

4.2  數組通過數字進行索引,也可包含字符串鍵值和屬性(但這些並不計算在數組長度內);字符串鍵值能強制轉換爲十進制數字時,被當作數字索引處理

var s = [];
s["13"] = 1;
s.length; // 14
s["abc"] = 2;
s.length; // 14

4.3  處理類數組

// 方法一
function foo() {
    var arr = Array.prototype.slice.call(arguments);
    arr.push('bam');
    console.log(arr);
}

foo('bar', 'baz'); // ['baz','baz', 'bam']

// 方法二

var arr = Array.from(arguments);

5、數字

5.1  toExponential() 轉換爲指數

var a = 5E10;
a;  // 50000000000;
a.toExponential(); // "5e+10"

5.2  toFixed() 可指定小數部分的顯示位數,輸出結果是給定數字的字符串形式

var a = 42.59;
a.toPrecision(3);  // "42.590"

5.3  toPrecision() 方法指定有效顯示位數

var a = 42.59;
a.toPrecision(2);  // "43"

5.4  “機器精度”:誤差範圍值, 2^-52

// polyfill
if(!Number.EPSILON) {
    Number.EPSILON = Math.power(2, -52);
}

function numberToEqual(a1, a2) {
    return Math.abs(a1 - a2) < Number.EPSILON;
}

var a = 0.1 + 0.2;
var b = 0.3;
numberToEqual(a, b); // true

5.5  能呈現的最大浮點數大約是 1.798e+308 -> Number.MAX_VALUE
       最小浮點數 5e-324  -> Number.MIN_VALUE,它不是負數,但無限接近於0
       

未完待續...

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章