Javasript のvar, letの違いをメモ
JavaScriptの変数宣言
JSでは変数を宣言するために、var, let, const の3つのキーワードがある。 これらはスコープ、再宣言、再代入の観点から異なる挙動をする。
const は定数なので再代入ができない。 今回はvar, let の違いを解説。
var
var は関数スコープの変数宣言であり、再宣言と再代入が可能。 var宣言された変数は、宣言された関数内どこからでもアクセス可能だが、ブロックスコープを無視する。
function exampleVar() {
if (true) {
var x = 5;
}
console.log(x); // 出力:5
}
let
let で宣言された変数もホイスティングされるが、宣言されるまでは変数が存在しないかのようなエラーを引き起こす。
console.log(y); // ReferenceError: y is not defined
let y = 10;
これにより安全なプログラムとなる。
まとめ
varによるホイスティングは、予期しないバグの原因となる。 let を使うことで、宣言前に値を参照するとエラーになるので、より安全なプログラムとなる。 let を使うことが推奨される。