Javascript “的奇怪语法;至于;环

Javascript “的奇怪语法;至于;环,javascript,for-loop,Javascript,For Loop,今天我遇到了以下JS: for (var b = k, d = function (c) { // function body }, a = b.p, e = z; 0 < c;) { } // for loop closing cause for(var b=k,d=function(c){ //功能体 },a=b.p,e=z;0

今天我遇到了以下JS:

    for (var b = k, d = function (c) {
       // function body
    }, a = b.p, e = z; 0 < c;) {

    } // for loop closing cause
for(var b=k,d=function(c){
//功能体
},a=b.p,e=z;0
能解释一下这里发生了什么吗?我对函数感到困惑,正常的“for”循环可以:

    for(x=0; x<something; x++){

    }

for(x=0;x循环中的控制变量也可以是示例中的有效表达式。

for(var b=k,d=function(c){},a=b.p,e=z;
0
){


对于(x=0
x没有五个部分,只有三个部分:

  • 第一个包含四个变量声明(
    b
    d
    a
    e
  • 第二个包含一个比较(
    0
  • 第三个是空的
每个部分用分号(
)分隔,变量声明用逗号(
)分隔

允许第一部分包含表达式或变量声明列表。有关详细信息,请查看或:

初始化

表达式(包括赋值表达式)或变量声明。通常用于初始化计数器变量。此表达式可以选择使用
var
关键字声明新变量。这些变量不是循环的局部变量,即它们与for循环在同一范围内。此表达式的结果将被丢弃



只是因为(x=0;x你发布的第一个循环与最后一个稍有不同。第一个循环声明并分配几个变量(其中一个是函数),然后提供一个条件(0=0
),否则它将永远运行(如果
c
确实小于0)。

我会解释,但基本上这不是好代码

这不是一个好代码,因为你需要上网才能弄清楚

对于(var b=k,d=function(c){ //功能体 },a=b.p,e=z;0 相当于

var b = k,
    d = function (c) {
      // function body
    },
    a = b.p,
    e = z;

for (; 0 < c; ){

}
var b=k,
d=功能(c){
//功能体
},
a=b.p,
e=z;
对于(;0
for循环父母有三个部分 1.初始化 2.情况 3.结束语

所有这些都必须用一个字母隔开

除此之外,这些都是for循环中的可选项

for (var init = 0; init < 10; init += 1) {}
for(var init=0;init<10;init+=1){
同:

var init = 0;
for (;;) {
 if (!(init < 10)) {
  break;
 }
 init += 10;
}
var init=0;
对于(;;){
如果(!(初始值<10)){
打破
}
init+=10;
}
用于(变量b=k,d=function(c){
//功能体
},a=b.p,e=z;0

只要d不是0,for循环就会运行。当0
for
循环有三个部分时,d是0:
for(初始化;条件;增量)
。这些部分中的任何一个都可以有零个或多个语句,即:
for(;;)
有效,而
for(a=1,b=2,c=3;a!=10;)
} // for loop closing cause
var b = k,
    d = function (c) {
      // function body
    },
    a = b.p,
    e = z;

for (; 0 < c; ){

}
for (var init = 0; init < 10; init += 1) {}
var init = 0;
for (;;) {
 if (!(init < 10)) {
  break;
 }
 init += 10;
}
 for (var b = k, d = function (c) {
       // function body
    }, a = b.p, e = z; 0 < c;) {

    } // for loop closing cause