Javascript (var i=0,item;item=a[i+;+;])的语法是什么

Javascript (var i=0,item;item=a[i+;+;])的语法是什么,javascript,for-loop,control-structure,Javascript,For Loop,Control Structure,在中,语法 for (var i = 0, item; item = a[i++];) 被解释为中间的“项目”是对真/假的条件测试。 但是,我假设语法是(开始;条件测试;控制因子),每个段之间都有分号。这里,语法对我来说是陌生的(开始,条件测试;控制因素;),中间有逗号,末尾有分号。相当于 for (var i = 0; item; item = a[i++]) ? 如果是这样,为什么要在结尾用逗号和分号写呢?格式没有改变。它只是声明var项。因此,它在start部分声明了两个变量。真实性测

在中,语法

for (var i = 0, item; item = a[i++];)
被解释为中间的“项目”是对真/假的条件测试。 但是,我假设语法是(开始;条件测试;控制因子),每个段之间都有分号。这里,语法对我来说是陌生的(开始,条件测试;控制因素;),中间有逗号,末尾有分号。相当于

for (var i = 0; item; item = a[i++])
?


如果是这样,为什么要在结尾用逗号和分号写呢?

格式没有改变。它只是声明
var项
。因此,它在
start
部分声明了两个变量。真实性测试是
item=a[i++]
控制因子
为零

for (;;) statement
是有效的for语句。你不必在任何一个部分中添加任何内容


item=a[i++]
只要
item
的计算结果为
true
。真实性在作业的左侧完成。这将取决于它的数据类型,但对于int,它可以是除
0
之外的任何值,例如。

格式没有更改。它只是声明
var项
。因此,它在
start
部分声明了两个变量。真实性测试是
item=a[i++]
控制因子
为零

for (;;) statement
是有效的for语句。你不必在任何一个部分中添加任何内容


item=a[i++]
只要
item
的计算结果为
true
。真实性在作业的左侧完成。这取决于它的数据类型,但对于int,它可以是除
0
以外的任何值,例如。

在该表达式中,我们有

  • 初始化=
    var i=0,item
    ——声明两个变量,并分配其中一个
  • condition=
    item=a[i++]
    ——执行赋值,并测试赋值结果
  • 控制因子=
    nothing
    ——增加
    i
    是作为条件的一部分,因此这里不需要任何东西
循环的
本质上等同于以下内容:

initialization;
while (condition) {
    body;
    control factor;
}
因此,当我们从循环中替换时,我们得到:

var i = 0, item;
while (item = a[i++]) {
    // body that you didn't show
}
赋值的值是已赋值的值,因此条件是
a[i]
是否真实。不需要控制因子,因为
a[i++]
返回
a[i]
的值,并且同时递增
i

编写此循环的更典型方法是:

for (var i = 0; a[i]; i++) {
    var item = a[i];
    // body that you didn't show
}

作者只是向你展示了如何组合这些元素。

在这个表达式中,我们有

  • 初始化=
    var i=0,item
    ——声明两个变量,并分配其中一个
  • condition=
    item=a[i++]
    ——执行赋值,并测试赋值结果
  • 控制因子=
    nothing
    ——增加
    i
    是作为条件的一部分,因此这里不需要任何东西
循环的
本质上等同于以下内容:

initialization;
while (condition) {
    body;
    control factor;
}
因此,当我们从循环中替换时,我们得到:

var i = 0, item;
while (item = a[i++]) {
    // body that you didn't show
}
赋值的值是已赋值的值,因此条件是
a[i]
是否真实。不需要控制因子,因为
a[i++]
返回
a[i]
的值,并且同时递增
i

编写此循环的更典型方法是:

for (var i = 0; a[i]; i++) {
    var item = a[i];
    // body that you didn't show
}

作者只是向你展示了如何将这些东西组合起来。

我一点也不喜欢这样。这似乎是故意混淆。这是推荐的语法??我一点都不喜欢。这似乎是故意混淆。这是一种推荐的语法??也许可以解释一下为什么
item=a[i++]
在正确的时间是正确的?也许可以解释一下
item=a[i++]
为什么在正确的时间是正确的?我喜欢你的安排方式。干得好。作为对我自己的提醒,我可能会补充一点,数组在尝试访问超出其长度的元素(或未填充的元素)时返回“undefined”,该元素被转换为boolean FALSE。我喜欢您的布局方式。干得好。作为对我自己的提醒,我可能会补充一点,数组在试图访问超出其长度的元素(或未填充的元素)时返回“undefined”,该元素被转换为boolean FALSE。