ES 6基本知識文法(一)

1447 ワード

ES 6の定数表記
構文:const =
const PI = 3.1415926
console.log(PI)

ここではconsole.log()を追加してブラウザコンソール出力を行う
注意:定数は読み取り専用のデータであり、変更はできません.
従来バージョンESの定数実装:
  • ES 3:
  • は実現不可能
  • ES 6:実装可能、オブジェクトを読み取り専用
  • に設定
    Object.defineProperty(window, "PI2", {
        value: 3.1415926,
        writable: false,
    })
    
    console.log(window.PI2)
    

    ES 6スコープ
    関数に閉パケットの概念があるES 5ではループの値を関数(役割ドメイン)に割り当てるにはカスタム属性が必要ですES 6ではループの宣言変数varをletに変更すれば関数(役割ドメイン)に値を割り当てることができます
    役割ドメインはES 5では,即時実行関数で役割ドメインを分離する必要があり,ES 6では{}で直接分離することができる.
    ブロックスコープ:{}
    例1:ES 5における役割ドメイン
    // ES5     
    const callbacks = []
    for (var i = 0; i <= 2; i++) {
        callbacks[i] = function() {
            return i * 2
        }
    }
    

    解釈callbacksreturn i*2は、関数変数値の参照ではなく、変数への参照である.関数体は値ではなく変数であるため、ループの変数値を正常に導入することはできません.
    例2:ES 6における役割ドメイン
    const callbacks2 = []
    for (let j = 0; j <= 2; j++) {
        callbacks2[j] = function() {
            return j * 2
        }
    }
    
    console.table([
        callbacks2[0](),
        callbacks2[1](),
        callbacks2[2](),
    ])
    
    letで宣言された変数を説明するには、ブロックの役割ドメインの概念があります.このときの閉パケットは、現在のブロックの役割ドメインに依存し、現在の値が保存され、後の閉パケットで使用されます.
    ES 6で新しい役割ドメインを定義するには{}を直接使用します.
    {
        function foo() {
            return 1
        }
    
        console.log("foo()===1", foo() === 1)
    }