大体スコープの違い。
<script>
//var let constの宣言の違い
{ //var //let //const
var varDec = '○初期値'; let letDec = '○初期値'; const conctDec = '○初期値';
varDec = '○再代入'; letDec = '○再代入'; conctDec = '×再代入';
var varDec = '○再宣言'; let letDec = '×再宣言'; const conctDec = '×再宣言';
}
//ローカルスコープでの宣言がグローバルスコープで使えるか
//var可 //let否 //const否
console.log(varDec); console.log(letDec); console.log(constDec);
</script>
まとめ
varは変数。即時関数内でない限りグローバルスコープ。
letはvarと大体同じな変数。ローカルスコープでの変数宣言に便利。
constは定数。だけど他の言語の定数と違ってローカルでの宣言がグローバルにならない。グローバルの宣言かローカルの宣言かを意識する必要あり。
var・let・constでフォローできないスコープ汚染は即時関数を使えばいいと個人的に思います。
//即時関数
(function(){
//処理
}());
//引数
(function(num1,num2){
//処理
}(1,2));
//返り値
var result = (function(){
return 123;
}());