2011-07-12 196 views
0

爲什麼javascript允許在本地代碼中創建全局變量?
一個例子javascript變量範圍

function f() { x=10; } 
function g() { print(x); } 
f(x); 
g(x); 
+1

設計錯誤。這個缺陷在ES5嚴格模式下已被刪除。 –

+0

爲什麼不呢?我想這可能會導致命名衝突,但如果這是一個問題,您應該給出更好的變量名稱。 –

+1

我上面的聲明來源:http://es5.github.com/#C(第四個項目符號) –

回答

1

爲什麼javascript允許在本地代碼中創建全局變量?

因爲它不是一個完美的語言。使用var關鍵字來限制變量的範圍。

3

當你不var前言變量會自動的在全球範圍內。

+0

直到爲其分配值的代碼執行完畢。 – RobG

0

我想你需要在變量聲明之前指定var以使其在範圍內。