これは単なる好奇心です。しかし、それは私が知りたいことです。Javascript関数レベルのスコープ
私は、let
キーワードでJavascript 1.7のサポートブロックスコープを知っています。
なぜ最初にJavaScriptがblock scope
の代わりにfunction-level
スコープで開始されたのですか?
これは単なる好奇心です。しかし、それは私が知りたいことです。Javascript関数レベルのスコープ
私は、let
キーワードでJavascript 1.7のサポートブロックスコープを知っています。
なぜ最初にJavaScriptがblock scope
の代わりにfunction-level
スコープで開始されたのですか?
言語の最も早い繰り返しがvar
キーワードを持たず、割り当てられたときに暗黙的に作成される変数に依存しているということは合理的な推測です(ただし推測のみ)。これは簡単なスクリプト言語ではよく使われます。その多くは、成熟して大規模なプロジェクトで使用されるように明示的な宣言メカニズムを改良する必要があります。 a
の暗黙の宣言ではなく、警告に見えているの括弧によってトラップされるならば、この仮定の下で、このよう
if(bla bla bla) {
a = 24 ;
} else {
a = blop.blop();
}
alert(a);
としてコードのために、それはしないだろう。したがって、機能レベルのスコープ。
今
@ Markholm私は推測の努力が好きです:) – user278064
...時間によって
var
を加え、機能レベルのスコープの仮定は、すでに言語の仕様と実装に定着になっていたことを想像していないのはなぜ?元のデザイナーや実装者が何を考えていたのか、どうすればわかるのでしょうか? – delnan彼らはどこかに出発しなければならなかったので? – deceze
@decezeだからどこから始めるのかは関係ありません。重要なことは、あなたが始めることです! – user278064