JavaScript: 変数宣言 let, var
概略
JavaScript では変数宣言で 2つの予約語 (let と var) があります。 var は初期の時代からあった古い予約語です。 let は 2010年代に新設された新しい予約語で IE9 以前では使えませんでした。
var は現在では使用しません
var は古い予約語で、これから JavaScript
を使う人は眺める必要はありません。
むやみに var を使うとイベント処理などで混乱する話が出てきます。
Java や C# が分かる人も var 変数は使わない方が良いです。
スコープの考え方で
Java や C# と異なる部分があり (変数の巻き上げなど)、
理解しないまま使うとつまらないトラブルの原因になります。
let と var の相違点
- var で宣言された変数は 2重定義してもエラーになりません。
誤って重複する変数名を宣言すると上書きされます。◎ 例 var var1 = "あいう"; var var1 = "ABC"; // var では重複する変数名でもエラーにならない。 let let1 = "あいう"; let let1 = "ABC"; // let では文法エラーになる。
- var 変数はスコープの考え方が他のプログラミング言語と異なります。
C言語、Java, C# などと同じ感覚で書くと つまらないトラブルが起こることがあります。
TestJS_let_var01.html
let と var の違いのサンプル。
- HTML 要素にイベント処理を付ける話でも var
では混乱する話がありました。
var 時代につまずく定番の話でした。
イベント処理, IE11 時代までの昔話いろいろ
JavaScript 考古学
- グローバル変数の違い。
let で宣言された変数 : window.変数名ではアクセスできない。 var で宣言された変数 : window.変数名でアクセスできる。