我正在嘗試一些簡單的JS代碼。我意識到我們應該使用var
關鍵字來聲明循環內的循環變量,例如for
循環以避免全局變量聲明。但是我意識到,循環變量循環的執行過之後存在:JS循環變量範圍
var a = [1, 2, 3, 4, 5, 6];
for (var i = 0; i < a.length; i++)
document.write(a[i]); //123456
document.write(i); //6
這不是內聯(其實它並不需要是的,我知道),在對象for
循環的循環變量如何面向概念表現。我知道我不應該在任何方面比較JavaScript和OO語言。不過,我只是猜測OO語言中的行爲更好。
我認爲,如果我們把這個代碼直接放在<script>
標記中,那麼它實際上會將循環變量添加到不需要的全局範圍中。是這樣嗎?或者我在想錯誤的方式?
我們可以通過建立明確的功能範圍實現這樣的行爲:
var a1 = [1, 2, 3, 4, 5, 6];
(function() {
for (var i1 = 0; i1 < a.length; i1++)
document.write(a[i1]); //123456
})();
document.write(i1); //undefined
但是,它的標準方式/遵循生產?還有什麼其他的事情可以做?
for循環(及其範圍行爲)與OOP有什麼關係? – Bergi
@Bergi umm我認爲當我們寫'for(int i = 0; i
Mahesha999
JavaScript(和許多其他語言)沒有塊範圍。這與語言是否遵循一些OOP原則無關。 – Bergi