var/let/constの違い





var/let/constについて

変数宣言のこと
varしかなかったが、ES2015でletとconstが追加された
varで宣言された場合関数スコープ(functionの中に書かれた変数)となるが、letとconstはブロックスコープとなる
varは変数の巻き上げ(ホイスティング)が起こるがletでが少し挙動が異なる?(あまり詳しく調べてない)
constとletがあるのでvarは積極的使うことはない

ブロックスコープ

{}で囲まれている部分のこと
varの場合だとfunction(){}がスコープとなっていたので
ifやforはスコープとならなかった
letで宣言された変数はforなどの中で閉じ込め、ループごとに固定される

ローカル変数

宣言した関数内でしか利用できない変数
functionのなかで宣言する

グローバル変数

プログラム全体、全てのスコープからアクセスできる変数

letとconst

基本的にはconstを使う
constは再代入不可で、再代入が必要な場合はletを使う