とりあえず結論から ES5時代のスコープ ES2015からlet, constが使えるように 巻き上げ(ホイスティング)について 非strictモードでの挙動 参考リンク まだまだBabelにお世話になりつつも、ES2015ベースでコードを書くことが確実に増えて来ていますね。 ES2015では変数の宣言に let, const という新しいシンタックスが使えるようになりました。 早速これらを使うようにしてみたのですが、let/constについては「letはブロックスコープ」「constは定数」程度の認識だったので、私の書いたコードには var, let, constが入り混じるというよくわからない状態になりました。 そのような状況を経て、まず最初に思ったのが「これ、var 要らなくね?」というもの。 基本的に、変数の有効範囲(スコープ)は可能な限り局所的にすべきという考えだったので、それで