基本的な使い方
- var は変数を宣言します
- var を置き換えて変数を宣言します
- const宣言定数
constの詳しい説明
const は、一度初期化された値を再割り当てしたくない状況向けに設計されています。
const に関する注意事項
1. const を使用して定数を宣言します。宣言したら、すぐに初期化する必要があり、後で代入できるようにしておくことはできません。
//错误写法
const sex;
sex='male';
//正确写法
const sex = 'male';
2. const で宣言された定数が参照データ型の場合、その値は再代入せずに変更できますが、基本データ型は変更できません
。
const person = {
username: 'Alex' };
// person = {};错误
person.username = 'ZhangSan';
console.log(person);
let、const、varの違い
1. 繰り返しの宣言
既存の変数または定数を再度宣言する場合、
var は繰り返し宣言できますが、let と const は許可されません。
//会报错
function func(a) {
let a = 1;
}
func();
2. 変数プロモーション
var は、変数の宣言を現在のスコープの先頭にプロモートします
。
console.log(a);
var a = 1;
に相当
var a;
console.log(a);
a=1;
let と const には変数のプロモーションはありません。
たとえば、
console.log(a);
let a = 1;
3. 一時的なデッドゾーンlet
と const がスコープ内に存在する限り、それらによって宣言された変数または定数は自動的にこの領域に「バインド」され、外部スコープの影響を受けなくなります。
let a = 2;
function func(){
console.log(a);
let a = 1;
}
func();
関数内の変数 a は関数にバインドされているため、外部変数 a を読み取ることができないため、エラーが報告されます
4. ブロックレベルのスコープ (最も重要な違い)
var にはブロックレベルのスコープがありません。
for (var i = 0; i < 3; i++) {
console.log('infor--'+i);
}
console.log(i);
変数 i はループの制御にのみ使用されますが、ループ終了後も変数 i は消えず、変数昇格によりグローバル変数に漏洩します。
let/const にはブロックスコープがあります
for (let i = 0; i < 3; i++) {
console.log('infor--'+i);
}
console.log(i);
i は for ループ内でのみ有効です。
ブロックレベルのスコープは何ですか?
- {}
- のために(){}
- その間(){}
- 一方を行います()
- もし(){}
- スイッチ(){}
let と const の使用に関する提案
デフォルトでは const を使用し、変数値を変更する必要があることがわかっている場合にのみ let を使用します。