🐕
JavaScript の var と let と const の簡単なまとめ
違いがあんまりわかっていなかったので、簡単にまとめてみました。
var
グローバルまたは関数スコープで変数を宣言します。
変数はそのスコープからのみ参照できます。
// グローバススコープで変数を定義
var global_value = "global";
function func(){
// OK: 外のスコープの変数を参照する事ができる
console.log(global_value);
var func_value = "local";
function func2(){
// OK: 外のスコープの変数を参照する事ができる
console.log(func_value);
var func2_value = "local2";
}
func2();
// error: ここから func2 内のスコープの変数は参照できない
console.log(func2_value);
}
func();
// error: ここから func 内のスコープの変数は参照できない
console.log(func_value);
参照
let
ブロックスコープのローカル変数を宣言します。
なのでブロックごとに独立した変数として扱われます。
let x = true;
// if 文で参照されるのは上で定義している x
if(x) {
// ここで定義される変数は上で定義した x とはまた別の変数になる
let x = false;
console.log(x);
// => false
}
// if のブロック内で変数の値を書き換えても影響がしない
console.log(x);
// => true
参照
const
let
と同様にブロックスコープのローカル変数として宣言するが let
とは違い再代入することはできない。
const x = 42;
// error: const で宣言した変数は書き換える事ができない
x = "homu";
Discussion