JavaScript -- let と const、var の違いと接続

JavaScript では、letおよびconstvar変数を宣言するために使用されるキーワードです。これらは、スコープ、変数の巻き上げ、変更可能性、宣言の繰り返しの点で異なる特性を持っています。

違い:

  1. スコープ:let両方constともブロックレベルのスコープ変数ですvarが関数スコープの変数です。ブロックレベルのスコープとは、letconstが宣言されているブロック (中括弧) 内では {}有効であり、そのブロックを越えると無効であることを意味します。関数スコープは、var関数本体全体で有効であることを意味します。
  2. 変数ホイスティング:var変数ホイスティングがあります。つまり、変数は宣言される前に使用できます。また、変数ホイスティングをlet行わない場合const、宣言前に変数を使用するとエラーがスローされます。
  3. 可変性:let宣言varされた変数は再割り当てできますが、const宣言された変数は定数で再割り当てできません。const宣言されたオブジェクトまたは配列のプロパティまたは要素は引き続き変更できますが、新しいオブジェクトまたは配列として再割り当てすることはできないことに注意してください。
  4. 繰り返し宣言: 同一スコープ内ではvar同じ変数名を複数回宣言できますが、同一スコープ内で同じ変数名を繰り返し宣言することはできませんletconst

接続:

  • 宣言方法: どちらも変数を宣言するために使用されますが、使用される構文は少し異なります。
    • let: ブロックレベルのスコープで変更可能な変数を宣言するために使用されます。
    • const: 定数を宣言するために使用されます。定数は宣言後に再割り当てできず、ブロックレベルのスコープも持ちます。
    • var: 関数スコープを持つ変数を宣言するために使用されます。
  • 変数の再定義: 使用letおよびconst宣言された変数を繰り返し定義することはできないため、エラーが発生します。ただし、var同じ変数の複数の定義は許可されており、後続の定義は以前の定義をオーバーライドします。

一般的な推奨事項:

  • より安全で柔軟性が高いため、可能な限り使用letおよびconst交換してください。var
  • let変更する必要がある変数を宣言するために使用します。
  • const再割り当てされない、宣言された定数を使用してください。
  • 本当に関数スコープが必要な場合にのみ使用してくださいvar

let変数を宣言するときは、状況に応じて、 、constまたはの使用を選択できますvar以下にいくつかの使用例を示します。 

1. let を使用します。 

let age = 25;
age = 26; // 可以重新赋值
console.log(age); // 输出 26

function updateName() {
  let name = "John";
  console.log(name);
}

updateName(); // 输出 "John"
console.log(name); // 报错,name 不在作用域内

2. const を使用します。

const PI = 3.14;
console.log(PI); // 输出 3.14

// 声明常量后不能再次赋值
PI = 3.14159; // 报错,不允许改变值

const person = {
  name: "Alice",
  age: 30
};

person.age = 31; // 对象的属性可以修改
person.city = "New York"; // 可以添加新的属性
console.log(person); // 输出 { name: "Alice", age: 31, city: "New York" }

3. var を使用します。 

var count = 10;
count = 11; // 可以重新赋值
console.log(count); // 输出 11

function sayHello() {
  var message = "Hello!";
  console.log(message);
}

sayHello(); // 输出 "Hello!"
console.log(message); // 报错,message 不在作用域内

おすすめ

転載: blog.csdn.net/m0_74293254/article/details/131575047