ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の var、let、const とは何ですか? var、let、constの使用法(コード)
この章では、JavaScript における var、let、const とは何かについて説明します。 var、let、const (コード) の使用法。困っている友人は参考にしていただければ幸いです。
1、var
は、グローバル ウィンドウで宣言されたグローバル変数であり、グローバル オブジェクト ウィンドウの属性です。
var sum = 0 console.log(window.sum) // 0 console.log(sum); // 0
関数内で宣言された変数はローカル変数です
function foo(){ function bar(a){ i = 3; console.log( a + i ); // 3 之后是无限循环11 } var i = 0 for( i ; i <= 10; i++){ bar( i * 2 ) } } foo()
このコードは次のように記述できます
function foo(){ function bar(a){ i = 3; console.log( a + i ); } var i i = 0 for( i ; i <= 10; i++){ bar( i * 2 ) } } foo()
関数は、変数を入力した後、プロモートされる前にプロモートされます。 for ループ、bar は関数のパラメータが 0 であるため、最初の出力は 3 として出力されます。フォーカスはここで i = 3 です。現在のスコープで i の宣言が検索されます。宣言がない場合は、それが検索されます。 foo でスコープチェーンに沿って検索します。見つかったので、foo の i は 3 になります。i を実行すると、i= 4 が得られ、bar を実行すると、次の 11 が得られます。これはループし続けます
2 、 let および const
は、ES6 で変数を宣言する 2 つの新しい方法です。同じスコープ内で同じ変数を繰り返し宣言することはできません。 変数の昇格がないため、変数が宣言される前にこの変数を使用することはできません。 var はプロモートされますが、値は未定義です。
#ES5 では関数のみがブロックレベルのスコープを持ちますが、ES6 では関数のスコープだけではありません。これは let と const
var b = 1; { let b = 2; } console.log(b); // 1のおかげです。
中括弧はブロックレベルのスコープに相当します
var a = [] for(let i=0; i<10;i++){ a[i] = function(){ console.log(i); }; console.log(i) //[function,function..] 总共10个 } console.log(a) a[8]() // 8
ここの let を var に変更すると、すべての出力が 10 になることがわかります。
var で宣言された i は、実際にはグローバル変数であり、配列 a と同じレベルにあります。 for ループが i の値を変更するたびに、ループが終了すると元の値に基づいてコピーされます (i = 10)。したがって、どのように呼び出しても、出力は 10
The i になります。 let で宣言されたものは現在の This ブロック内でのみ有効です。サイクルごとにブロックがあるため、ループするたびに新しい変数 i が作成されます。cont と let の違いの 1 つは、定数の宣言に const が使用されることです。一度宣言すると、その値は変更できません。ただし、const が参照型の値を宣言している場合、
const a = {} a.name = 'circle' console.log(a); // Object {name: "circle"}
const はこのオブジェクトのアドレス値を格納するため、アドレス値が変更されないことのみを保証できますが、このオブジェクトの属性を変更することはできません。
以上がJavaScript の var、let、const とは何ですか? var、let、constの使用法(コード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。