JavaScriptにおけるvar, letはスコープの仕組みが違う
JavaScriptにおいて使われているvar, let, constの違いについて気になって調べてみたのでメモとしてここに投稿します。
const
constは定数である。一度代入した値を変えることがないときに使う。
varとletで宣言された変数の違い。
これら二つの違いはスコープの仕組み
var
varにより宣言された変数は関数スコープを持つ。そのため関数内であればとこからでもその変数にアクセスできる。
let
letにより宣言された変数は、ブロックスコープを持つ。そのためアクセスできる範囲が宣言されたブロック内に制限されている。
let.js
if () {
let a = 'abc';
}
console.log(a); // 宣言されたブロックの外なのでエラーとなる。
letを使うことのメリット
ブロックスコープを持ちアクセスできる範囲が制限されているため、宣言されたブロック内の外側で使用されてバグにつながるということがなくなる。
参考にしたサイト
JavaScriptの変数宣言はletにすべきか 『入門JavaScriptプログラミング』から解説
この記事の内容に間違いなどありましたらご指摘していただけると幸いです。