この 2 か月間、私は JavaScript について多くのことを学んできました。何年にもわたって言語を乱用してきましたが、私は今ではその言語をよりよく理解しており、その機能的な性質の利点
を気に入っています。
最近、私はSchemeの学習を始めましたが、それはただの楽しみです。MDN リファレンスを閲覧していると、JS にはブロック スコープがありませんが、Scheme のように、特定のブロックに対してローカルな変数を宣言するために使用できるキーワードがあることに気付きましたlet
。
for (var i=0;i<someArray.length;i++)
{
console.log(someArray[i]);
}
console.log(i);//will log someArray's length
一方:
for (let i=0;i<someArray.length;i++)
{
console.log(someArray[i]);
}
console.log(i);//undefined
だから私が今知りたいのは、なぜlet
もっと頻繁に使われないのですか? X ブラウザーのサポートと何か関係がありますか? それはあまり知られていないグッズの1 つにすぎませんか?
要するに、var
overを使用する利点はlet
何ですか? 注意点は何ですか?
私が知る限り、 の動作はlet
どちらかといえば一貫性があります (関数本体を除いて、単一のブロックでの二重宣言は を発生させTypeError
ます (ただし、ECMA6 ドラフトではこれを修正します)。
正直に言うと、この機能/キーワードは別として)あまり知られていないので、for ループの使用や、一時変数がより読みやすいコードを作成する場所での使用に対する議論を考えるのに苦労しています。let