新しい ECMASCRIPT-6 constキーワードをいじっていました。キーワードの 1 つの特定の動作がわかりませんでした。
2つの機能があるとしましょう
最初のケース
(function(){
console.log(_t);
const _t=10;
})();
そして 2番目のケース
function t(){
console.log(_y);
const _y=11;
}
t();
最初のケースの出力は(理由がわかりませんでした)
ReferenceError: 初期化前にレキシカル宣言 `_t' にアクセスできません
2番目のケースでは、出力は(罰金)です
未定義
2 番目のケースの出力は期待どおりですが、最初のケースの結果がエラーをスローする理由がわかりません。変数が巻き上げられていないことは、エラーから推測できます。しかし、なぜ?ブロック スコープを使用するhereを見つけました。このスコーピングと何か関係がありますか?const
Firefox Developer Version コンソールを使用してテストを実行しています。