我应该在for in结构中使用var吗?

乔皮

我在一段JavaScript逻辑中使用了for in循环。是否应该使用var关键字?

当我按照W3School的示例运行for-in循环而没有var时,作为副作用,它被定义为全局作用域(窗口)上的属性:

(function () {

  var object = {
      a: 1,
      b: 2
  }
  for (varName in object) {
      alert(varName + " is" + object[varName])
  }

})();

alert(window.varName) //Returns "b" !
//This returns undefined when the for-in is rewritten as for (var varName in object).

编辑:这是上面代码的小提琴,供您欣赏:http : //jsfiddle.net/94uEh/

哪种是正确的首选形式?-请注意,我希望支持IE 8(EcmaScript <5)

安德烈·斯内德·科克

var如果希望该值是本地的,则应始终使用

object不建议使用关键字作为变量,否则可能会在浏览器中发生未定义的行为。

同样,您通常应该避免应用任何被认为是全局范围本地的东西。

这不好:

for (varName in object) {
    alert(varName + " is" + object[varName])
}

这是对的:

for (var varName in object) {
    alert(varName + " is" + object[varName])
}

如果需要在全局范围内访问此值,则可能做错了。在全局范围内使用它也是没有用的,因为它只是varName中存在的最后一个值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我应该在嵌套块中使用weakSelf吗?

来自分类Dev

我应该在调度块中使用“ weakSelf”吗?

来自分类Dev

我应该在GraphQL中使用列表(数组)吗?

来自分类Dev

我应该在main(){}中使用#include语句吗?

来自分类Dev

我应该在Wordpress中使用Options -Indexes吗?

来自分类Dev

我应该在Java中使用Clone方法吗?

来自分类Dev

我应该在Spark SQL中使用registerDataFrameAsTable吗?

来自分类Dev

我应该在Swift中使用Cocoa绑定吗?

来自分类Dev

我应该在BehaviorSubject中使用asObservable吗?

来自分类Dev

我应该在TDD中使用lambda吗?

来自分类Dev

我应该在main(){}中使用#include语句吗?

来自分类Dev

我应该在 Kotlin 的界面中使用属性吗?

来自分类Dev

我应该在MENUITEMINFO结构的fMask参数中使用MIIM_TYPE吗?

来自分类Dev

我应该在使用throw时使用throw吗?

来自分类Dev

我应该在这里使用HttpResponseRedirect吗?

来自分类Dev

我何时应该在python中使用del?

来自分类Dev

我应该在POSIX shell中使用“ test”还是“ [”“]”?

来自分类Dev

我应该在“ this”中使用bind还是关闭别名?

来自分类Dev

我应该在查询中使用非重复

来自分类Dev

我应该在Minecraft中使用哪个Java版本?

来自分类Dev

为什么我应该在Flutter中使用Cards?

来自分类Dev

我应该在JSFiddle中使用:after还是:: after?

来自分类Dev

我应该在UPC中使用哪种网络类型

来自分类Dev

我应该在Minecraft中使用哪个Java版本?

来自分类Dev

我应该在“ this”中使用bind还是关闭别名?

来自分类Dev

我应该在PHP DocBlocks中使用哪些标签

来自分类Dev

当我应该在Prolog中使用<-时

来自分类Dev

我应该在POSIX shell中使用“ test”还是“ [”“]”?

来自分类Dev

我应该在模型中抛出HttpStatus异常吗?

Related 相关文章

  1. 1

    我应该在嵌套块中使用weakSelf吗?

  2. 2

    我应该在调度块中使用“ weakSelf”吗?

  3. 3

    我应该在GraphQL中使用列表(数组)吗?

  4. 4

    我应该在main(){}中使用#include语句吗?

  5. 5

    我应该在Wordpress中使用Options -Indexes吗?

  6. 6

    我应该在Java中使用Clone方法吗?

  7. 7

    我应该在Spark SQL中使用registerDataFrameAsTable吗?

  8. 8

    我应该在Swift中使用Cocoa绑定吗?

  9. 9

    我应该在BehaviorSubject中使用asObservable吗?

  10. 10

    我应该在TDD中使用lambda吗?

  11. 11

    我应该在main(){}中使用#include语句吗?

  12. 12

    我应该在 Kotlin 的界面中使用属性吗?

  13. 13

    我应该在MENUITEMINFO结构的fMask参数中使用MIIM_TYPE吗?

  14. 14

    我应该在使用throw时使用throw吗?

  15. 15

    我应该在这里使用HttpResponseRedirect吗?

  16. 16

    我何时应该在python中使用del?

  17. 17

    我应该在POSIX shell中使用“ test”还是“ [”“]”?

  18. 18

    我应该在“ this”中使用bind还是关闭别名?

  19. 19

    我应该在查询中使用非重复

  20. 20

    我应该在Minecraft中使用哪个Java版本?

  21. 21

    为什么我应该在Flutter中使用Cards?

  22. 22

    我应该在JSFiddle中使用:after还是:: after?

  23. 23

    我应该在UPC中使用哪种网络类型

  24. 24

    我应该在Minecraft中使用哪个Java版本?

  25. 25

    我应该在“ this”中使用bind还是关闭别名?

  26. 26

    我应该在PHP DocBlocks中使用哪些标签

  27. 27

    当我应该在Prolog中使用<-时

  28. 28

    我应该在POSIX shell中使用“ test”还是“ [”“]”?

  29. 29

    我应该在模型中抛出HttpStatus异常吗?

热门标签

归档