簡體   English   中英

Javascript for-in全局范圍

[英]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'; (對於所有新代碼,您應該使用該代碼),如果忘記了,則會收到錯誤消息。

是的,使用的JSLintJSHint靜態分析你的JavaScript代碼,為其他可能出現的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM