①再代入、再定義可能か
let,varは可能
constは不可能(※定数だから)
②スコープの範囲
var・・・関数スコープ
function test() {
if (true) {
//条件式の中で宣言
var x = 1;
}
console.log(x) // 条件式の外で呼び出しても、関数内なので1が表示される
}
let,const・・・ブロックスコープ
function test() {
//if文の{}が1つのブロックなので、
if (true) {
//条件式の中で宣言すると
let x = 1;
const y = 2;
}
console.log(x) //ブロックの外側なのでundefined(未定義)となる
console.log(y) //constを使った場合も同様にundefinedとなる
};