2011-08-30 12 views
0

これは単なる好奇心です。しかし、それは私が知りたいことです。Javascript関数レベルのスコープ

私は、letキーワードでJavascript 1.7のサポートブロックスコープを知っています。

なぜ最初にJavaScriptがblock scopeの代わりにfunction-levelスコープで開始されたのですか?

+2

...時間によってvarを加え、機能レベルのスコープの仮定は、すでに言語の仕様と実装に定着になっていたことを想像していないのはなぜ?元のデザイナーや実装者が何を考えていたのか、どうすればわかるのでしょうか? – delnan

+0

彼らはどこかに出発しなければならなかったので? – deceze

+0

@decezeだからどこから始めるのかは関係ありません。重要なことは、あなたが始めることです! – user278064

答えて

1

言語の最も早い繰り返しがvarキーワードを持たず、割り当てられたときに暗黙的に作成される変数に依存しているということは合理的な推測です(ただし推測のみ)。これは簡単なスクリプト言語ではよく使われます。その多くは、成熟して大規模なプロジェクトで使用されるように明示的な宣言メカニズムを改良する必要があります。 aの暗黙の宣言ではなく、警告に見えているの括弧によってトラップされるならば、この仮定の下で、このよう

if(bla bla bla) { 
    a = 24 ; 
} else { 
    a = blop.blop(); 
} 
alert(a); 

としてコードのために、それはしないだろう。したがって、機能レベルのスコープ。

+0

@ Markholm私は推測の努力が好きです:) – user278064