Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在for循环中声明i时使用var_Javascript_For Loop - Fatal编程技术网

Javascript 在for循环中声明i时使用var

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循环的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

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} 如果您说开始使用i而不首先说var,那么您应该在for循环之前声明变量。 比如:

var i; 对于i=0;i} JavaScript的功能范围是有限的。至少目前为止,该语言没有块级变量

当您为var i=0;编写时;这和

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; ... );