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を使う