[英]Javascript for-in global scope
我只是一個尷尬的認識...
我定期遍歷這樣的對象:
for (item in results) {
if (results.hasOwnProperty(item)) {
// do something with results[item];
}
}
在大型應用程序中,我開始向全局名稱空間中泄漏奇數泄漏。 我從未懷疑上面的item
浮動到全局名稱空間中,因為它從未聲明過。 我猜是嗎?
正確的語法如下嗎?
for (var item in results) {
if (results.hasOwnProperty(item)) {
// do something with results[item];
}
}
由於某些原因,我似乎在示例中錯過了這一點。
否則,我非常堅定地聲明我的所有變量,並且不讓任何東西進入全局名稱空間。 由於某些原因,我認為...循環中是一些特殊的例外,但是我考慮得越多,結論似乎就顯得愚蠢了。
是; 您需要聲明變量。
如果添加'use strict';
(對於所有新代碼,您應該使用該代碼),如果忘記了,則會收到錯誤消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.