ES6の宣言変数

ES6の宣言変数

ES6は、変数を定義するためのletとconstキーワードを追加しました:

  • var:ES5およびES6、ある意味で、グローバル変数(変数ショート)を定義するために使用することができます
  • let:別の方法として、(定義された同じスコープを繰り返すことは許されない)させ、ローカル変数を定義します。
  • const:定義定数(後で定義を変更することはできません)

VAR:グローバル変数

// 全局作用域
{
    // 局部作用域
    var x = 1;
}
console.log(x); // ?

ローカルスコープの変数ではなく、出力文のグローバル変数で、ローカル変数として宣言X、今回は出力は不定ではなく、1であります

// 全局作用域
var x = 1;
{
    // 局部作用域
    var x = 2;
}
console.log(x); // ?

その後、出力は2であり、xのvarはグローバル変数として宣言されているため、単純な理由があります

要約:変数を宣言するためにvarキーワードは、グローバル変数を汚染うグローバル変数、となります

トップへ戻る 目次

てみましょう:ローカル変数を

// 全局作用域
var x = 1;
{
    // 局部作用域
    let x = 2;
}
console.log(x); // ?

LETの宣言ローカルスコープでのみ有効なローカル変数は、グローバル変数xには影響しませんので、その後の出力は、1であります

// 全局作用域
var x = 1;
{
    // 局部作用域
    let x = 2;
}
console.log(x); // ?
// 全局作用域
var x = 1;
{
    console.log(x) // Cannot access 'x' before initialization
    // 局部作用域
    let x = 2;
}

フェイス質問:以下の出力は何ですか?どのように出力0,1,2,3,4 ... buttons.length

var buttons = document.getElementsByTagName("button");
for(var i = 0;i < buttons.length;i++){
    buttons[i].onclick = function(){
        console.log(i);
    }
}

印刷buttons.length時間buttons.length、ソリューション

var buttons = document.getElementsByTagName("button");
for(var i = 0;i < buttons.length;i++){
    (function(i){
        buttons[i].onclick = function(){
            console.log(i);
        }
    })(i);
}

var buttons = document.getElementsByTagName("button");
for(let i = 0;i < buttons.length;i++){
    buttons[i].onclick = function(){
        console.log(i);
    }
}
  1. 変数は、文が窓にぶら下がっていませんしましょう、グローバル変数は、環境汚染を引き起こすことはありません
  2. ブロックレベルの範囲を{}を加え、以前にのみ機能スコープ、グローバルスコープ
  3. 文は、繰り返しに許可されていませんしましょう
  4. (人が見るだけの効果は、実際には、事前に文は先に、一時的なデッドゾーンの、そこにある:にアクセスできません「x」を初期化する前に)事前に声明を聞かせていない面接のポイント

トップへ戻る 目次

CONST:定数

// 全局作用域
const x = 1;
{
   
    // 局部作用域
    const x = 2;
}
 console.log(x) // 1
// 全局作用域
const x = 1;
{
    console.log(x) // Uncaught ReferenceError: Cannot access 'x' before initialization
    // 局部作用域
    const x = 2;
}
// 全局作用域
const x = 1;
{
    console.log(x) // Uncaught TypeError: Assignment to constant variable.
    const x = 2;
}
  1. const変数の宣言は、グローバル変数汚染は発生しません、ウィンドウにハングしません
  2. constが声明を繰り返すことは許されません
  3. 事前に何の声明をCONSTない(唯一の効果の人々が見、実際には、先に一時的なデッドゾーンの事前の文は、あります:初期化の前にすることはできませんアクセス「NUM」)面接のポイント
  4. constがメモリアドレス空間を変更することはできません、変更することはできません
  5. constの宣言とワンタイム割り当てを完了する必要があり、後者は、ストレージスペースのアドレスを変更することはできません
  6. constが作るために使用することができます
  7. CONSTを使用すると、letでそれを使用することはできません。一定の効率が変数よりも高く、

トップへ戻る 目次

公開された43元の記事 ウォンの賞賛3 ビュー1123

おすすめ

転載: blog.csdn.net/qq_45007419/article/details/104878937
おすすめ