違い: 1. var で宣言された変数は関数スコープに属しますが、let と const で宣言された変数はブロックレベルのスコープに属します; 2. 変数のプロモーションは var には存在しますが、let と const には存在しません; 3. Var 変数は繰り返し宣言できますが、同じブロックレベルのスコープ内では let 変数を再宣言したり、const 変数を変更したりすることはできません。
推奨チュートリアル: 「JavaScript ビデオ チュートリアル 」
ES6 (ES2015) が登場する前の JavaScript での変数の宣言関数の宣言は var キーワードのみで、関数の宣言は function キーワードで行われます。ES6 以降では、宣言方法には var、let、const、function、class が含まれます。この記事では主に var、let、const の違いについて説明します。
var について
#キーワード var を使用して変数を宣言すると、その変数は現在の関数スコープに属します。関数宣言の場合、この変数はグローバル スコープに属します。例:
var a = 1; //此处声明的变量a为全局变量 function foo(){ var a = 2;//此处声明的变量a为函数foo的局部变量 console.log(a);//2 } foo(); console.log(a);//1
変数を宣言するときに var を省略すると、その変数はグローバル変数になり、変数がグローバル スコープに存在する場合、その値は更新されます。例:
var a = 1; //此处声明的变量a为全局变量 function foo(){ a = 2;//此处的变量a也是全局变量 console.log(a);//2 } foo(); console.log(a);//2
注: var で宣言された変数はホイストの対象となります。
「プロモーション」について
プロモーションとは、var がスコープ内のどこに出現しても、このステートメントは現在のスコープ全体に属し、スコープ内のどこにでもアクセスできることを意味します。変数宣言のみがプロモートされ、変数への代入はプロモートされないことに注意してください。次の例に示すように:
console.log(a);//undefined var a = 1;
このコード セグメントは、次のコード セグメントと同じロジックを持っています:
var a; console.log(a);//undefined a = 1;
宣言されていない変数が操作されると、エラーが報告されます
console.log(b);//假设b未声明过,Uncaught ReferenceError: b is not defined
let を理解する
let で宣言された変数には次の特性があります:
let で宣言された変数にはブロックの特性があります範囲。
let a = 1; console.log(a);//1 console.log(b);//Uncaught ReferenceError: b is not defined let b = 2;
function foo(){ let a = 1; let a = 2;//Uncaught SyntaxError: Identifier 'a' has already been declared }
for (var i = 0; i < 10; i++) { setTimeout(function(){ console.log(i); },100) };
for (let i = 0; i < 10; i++) { setTimeout(function(){ console.log(i); },100) };
const を理解する
const宣言メソッドは、上記のletの特徴に加えて、constで定義した変数は一度定義すると変更できない、つまりconstで宣言したものが定数であるという特徴もあります。 例:const a = 1; console.log(a);//1 a = 2; console.log(a);//Uncaught TypeError: Assignment to constant variable.
const obj = {a:1,b:2}; console.log(obj.a);//1 obj.a = 3; console.log(obj.a);//3
相違点の概要
プログラミング教育をご覧ください。 !
以上がJavaScriptのvar、let、constの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。