ホームページ  >  記事  >  ウェブフロントエンド  >  ES6 ブロックレベルのスコープの詳細な説明

ES6 ブロックレベルのスコープの詳細な説明

小云云
小云云オリジナル
2018-01-26 16:45:571549ブラウズ

ご存知のとおり、ES5 より前の JavaScript 言語には関数スコープとグローバル スコープしかなく、var で宣言された変数には変数の昇格もあり、混乱を招きました。まず ES5 の var 宣言を確認してから、let と const を比較してみましょう。

var

var宣言関数のスコープとグローバルスコープ。

コードで体験してみましょう:

function getName() {
 if (1 + 1 === 2) {
 var name = 'xixi';
 }

 console.log(name);
}

getName();//xixi

C 言語や Java 言語では、name は if ブロック内でのみ使用する必要がありますが、if ブロックの外からもアクセスできます。これは、そうでないタイプの JS です。ブロックレベルのスコープを持ちます。この欠点は、for ループでは非常に明白です:

for (var i = 0; i < 10; i ++) {
 // ...
}

console.log(i);// 10

var i の本来の目的は、配列の走査などに使用される一時変数 i を宣言することです。for ループの外ではアクセスすべきではありませんが、現在はアクセスできるようになりました。 by you めんどくさいって言ってるのか、そうじゃないのか?より優れたプログラマーは、ブロックレベルのスコープをシミュレートするために即時実行関数を使用します。本来、私は注意を払い、同じ変数名を使用しないように努めていました。

以上がES6 ブロックレベルのスコープの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。