我看到Javascript代码使用了两种不同的方法来定义for循环。
for (var i=0;i < x.length; i++)但它也是
for (i=0; i < x.length; i++)同样的事情也发生在for-in循环中。
for (var i in x)和
for (i in x)将i声明为var与只说i有什么区别吗?做一个比另一个好吗?这样做是正确的吗?据我所知,他们的行为都是一样的,但肯定有一些不同。
注意:我不是在问for-in和for (i=0)之间的区别
发布于 2015-03-29 00:41:13
发布于 2015-03-29 00:46:34
JavaScript在功能范围上是限定的。至少目前,该语言没有块级变量。
在编写for (var i=0; ... );时,它与
var i;
for (i=0; ... );在没有"use strict";的情况下,变量声明将是hoisted。
仅for (i=0; ... );就意味着i属于全局(最顶层)对象(在浏览器中它是window)
发布于 2015-03-29 01:08:15
简介:
for语句创建一个由三个可选表达式组成的循环。
背景:
您指的是初始化,它是表达式或变量声明。它几乎总是用于初始化一个计数器变量,如您所示,它允许我们迭代一个集合。
此表达式可以选择使用var关键字声明新变量。这些变量不是循环的本地变量,即它们位于for循环所在的相同范围内。此表达式的结果将被丢弃。
在JavaScript中,变量可以保存不同的数据类型,而在计数器变量的情况下,JavaScript将变量视为数字。
答案:
您可以选择声明一个新变量(或者完全不声明)的原因是JavaScript编程语言的特性。您已经发现了语言中处理变量和作用域的一个重要方面。
“变还是不变”
请参阅另一篇关于使用var或根本不使用var的帖子,以了解更多.
https://stackoverflow.com/questions/29324332
复制相似问题