麻烦高手帮忙解释一下:JS中 for(i=0, c=0;i<6;i++,tn*=20) { 执行代码}?

2025-02-23 21:49:29
推荐回答(1个)
回答1:

您的理解有误,for循环的执行顺序如下:

for ([initialization]; [condition]; [final-expression])  {

   statement

}

  • initialization

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

  • condition

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

  • final-expression

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

  • statement

    只要condition的结果为true就会被执行的语句。要在循环体内执行多条语句,使用一个块语句({ ... })来包含要执行的语句。没有任何语句要执行,使用一个空语句(;)。


因此,您的代码可以这么理解;

  1. initialization,初始化i和c的值,这个只执行1次;

  2. condition,判断i < 6的布尔值,为true时,执行statement,再执行final-expression,为false时,for循环结束;

  3. 当 i = 0时, condition布尔值为true,执行statement,然后再执行i++, tn * =20;(以此类推)

  4. 当i = 6时,condition布尔值为false,for循环结束