JS在同一个函数里面,如果有两个for循环,两个循环里面分别定义了2个同名的局部变量,会起冲突吗?

JavaScript017

JS在同一个函数里面,如果有两个for循环,两个循环里面分别定义了2个同名的局部变量,会起冲突吗?,第1张

一般不会起冲突因为你后面的语句,里面用了var,相当于重新定义了变量。但是如果前一个for循环中,执行效率很低,循环体有可能还未执行完毕,就进入下一个for循环,有可能会有冲突。最好的解决办法是,1)变量换名2)确保for循环执行都是立即执行的,否则使用回调的方法(因为for循环很快,快于里面代码块的执行)。

语句1

一个表达式 (包含赋值语句) 或者变量声明。典型地被用于初始化一个计数器。该表达式可以使用 var 或 let 关键字声明新的变量,使用 var 声明的变量不是该循环的局部变量,而是与 for 循环处在同样的作用域中。用 let 声明的变量是语句的局部变量。该表达式的结果无意义。

语句2

一个条件表达式被用于确定每一次循环是否能被执行。如果该表达式的结果为 true,statement 将被执行。这个表达式是可选的。如果被忽略,那么就被认为永远为真。如果计算结果为假,那么执行流程将被跳到 for 语句结构后面的第一条语句。

语句3

每次循环的最后都要执行的表达式。执行时机是在下一次 condition 的计算之前。通常被用于更新或者递增计数器变量。