Javascript 在for循环中声明i时使用var
我见过使用两种不同方式定义for循环的Javascript代码Javascript 在for循环中声明i时使用var,javascript,for-loop,Javascript,For Loop,我见过使用两种不同方式定义for循环的Javascript代码 for (var i=0;i < x.length; i++) 及 将i声明为var和只说i有什么区别吗?做一件事比做另一件事有好处吗?这样做对吗?据我所知,他们的行为是一样的,但肯定有一些不同 注意:我不是在问for in和for I=0之间的区别,如果函数中没有var声明,对I的引用将是全局对象的I属性。如果for循环体中的代码在一个被调用的方法中调用代码(例如,在一个被调用的方法中,该方法也修改了全局i),那么这就有可
for (var i=0;i < x.length; i++)
及
将i声明为var和只说i有什么区别吗?做一件事比做另一件事有好处吗?这样做对吗?据我所知,他们的行为是一样的,但肯定有一些不同
注意:我不是在问for in和for I=0之间的区别,如果函数中没有var声明,对I的引用将是全局对象的I属性。如果for循环体中的代码在一个被调用的方法中调用代码(例如,在一个被调用的方法中,该方法也修改了全局i),那么这就有可能出现各种不可预测的行为
注意,在for循环初始化中声明var i
for (var i = ...)
相当于宣布var i;在for循环之前:
特别是,i的声明将位于封闭范围的顶部
编辑:如果启用,则必须声明循环变量实际上是所有变量。引用未使用var语句声明的变量将导致抛出ReferenceError,而不是导致全局变量存在。如果函数中某处没有var声明,则对i的引用将指向全局对象的i属性。如果for循环体中的代码在一个被调用的方法中调用代码(例如,在一个被调用的方法中,该方法也修改了全局i),那么这就有可能出现各种不可预测的行为
注意,在for循环初始化中声明var i
for (var i = ...)
相当于宣布var i;在for循环之前:
特别是,i的声明将位于封闭范围的顶部
编辑:如果启用,则必须声明循环变量实际上是所有变量。引用未使用var语句声明的变量将导致抛出ReferenceError,而不是导致全局变量的存在。如果说开始使用i而不先说var,则应该在for循环之前声明该变量。 比如: var i; 对于i=0;i
var i;
for (i=0; ... );
在没有变量的情况下,将进行声明
对于i=0;仅此一项就意味着我属于浏览器中最顶级的全局对象,因为JavaScript的窗口在功能上是有范围的。至少目前为止,该语言没有块级变量 当您为var i=0;编写时;这和
var i;
for (i=0; ... );
在没有变量的情况下,将进行声明
对于i=0;仅此一项就意味着我属于浏览器中最顶级的全局对象它的窗口简介:
for语句创建一个由三个可选项组成的循环
表情
背景:
您指的是初始化,它是一个表达式或变量声明。它几乎总是用来初始化一个计数器变量,它允许我们遍历集合,如您所示
此表达式可以选择使用var声明新变量
关键词。这些变量不是循环的局部变量,即它们位于
循环的作用域与此相同。这个表达式的结果是
丢弃
在JavaScript中,变量可以包含不同的数据类型,对于计数器变量,JavaScript将变量视为数字
答复:
正如您所强调的,可以选择声明或根本不声明新变量的原因是由于JavaScript编程语言的性质。您已经了解了语言中处理变量和范围的一个重要方面
选择var还是不选择var
请参阅另一篇关于使用var或根本不使用var的文章,以了解更多
简介:
for语句创建一个由三个可选项组成的循环
表情
背景:
您指的是初始化,它是一个表达式或变量声明。它几乎总是用来初始化一个计数器变量,它允许我们遍历集合,如您所示
此表达式可以选择使用var声明新变量
关键词。这些变量不是循环的局部变量,即它们位于
循环的作用域与此相同。这个表达式的结果是
丢弃
在JavaScript中,变量可以包含不同的数据类型,对于计数器变量,JavaScript将变量视为数字
答复:
可以选择声明新变量B的原因
正如您所强调的那样,这是由于JavaScript编程语言的性质造成的。您已经了解了语言中处理变量和范围的一个重要方面
选择var还是不选择var
请参阅另一篇关于使用var或根本不使用var的文章,以了解更多
Javascript通常允许您滥用内容,但这也可能导致意外行为,正如@Ted Hopp所说。Javascript通常允许您滥用内容,但这也可能导致意外行为,正如@Ted Hopp所说。即使在严格模式下,变量声明也会被挂起;严格模式的作用是在引用未声明的变量时引发ReferenceError;strict模式的作用是在引用未声明的变量时引发ReferenceError。
var i;
for (i = ...)
var i;
for (i=0; ... );