あなたが知らないJavaScriptのボリューム-【値】

1711 ワード

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配列は数字によって索引付けされ、文字列キー値と属性を含んでもよい(ただし、これらは配列長に計算されない).文字列キー値が強制的に10進数に変換できる場合、数字索引として扱われる
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.798 e+308->Numberである.MAX_VALUE最小浮動小数点数5 e-324->Number.MIN_VALUEは負数ではありませんが、無限に0に近いです.
未完待続...