檢查時,這個互動谷歌瀏覽器的控制檯日誌:JavaScript錯誤使用未定義的變量
test_1 = 'ok'
> "ok"
test_2 = test_2 || 'ok'
> ReferenceError: test_2 is not defined
var test_3 = test_3 || 'ok'
> undefined
test_1
> "ok"
test_2
> ReferenceError: test_2 is not defined
test_3
> "ok"
當我打電話test_1 = 'ok'
我離開了var
構造,但瀏覽器還了解到這一點。我假設它填充了我省略的var
,就像它用分號填充一樣。
但對於test_2 = test_2 || 'ok'
我收到一個錯誤。我知道test_2
沒有定義,但它不會保留我的下一個示例test_3
無法工作。由於某種原因,缺少var
聲明成爲一個問題。
有人可以向我解釋爲什麼解釋器會在那裏引發錯誤嗎?
[JavaScript'hoisting'](http://stackoverflow.com/questions/15311158/javascript-hoisting)也看看[JavaScript範圍和提升](http://www.adequatelygood.com/JavaScript-Scoping- and-Hoisting.html) – Givi
你可以省略'var',它意味着你的變量是全局的。 – elclanrs
我不明白你爲什麼低估這一點。 – bgusach