for (var part; parts.length && (part = parts.shift());) {}
我想到了一个for循环只能是这样的:我如何理解这个循环?
for (var part = 0; i < that.length; part++) {}
那么,是什么意思呢?
for (var part; parts.length && (part = parts.shift());) {}
我想到了一个for循环只能是这样的:我如何理解这个循环?
for (var part = 0; i < that.length; part++) {}
那么,是什么意思呢?
读this可能会解释很多。
for (initial-expression; condition; final-expression) {
// Block of code.
}
初始表达式在循环开始之前运行一次。
检查条件是否为真,如果为true,则运行最终表达式。
重复执行最终表达式(连同代码块),直到条件为假。
你可以把任何东西放在这些位置上。
你甚至可以做for(;;) { }
这就是所谓的永久循环。
你也可以做一个纯循环条件。
for (prop in object)
是最常见的形式。
那循环的等价去研究思维
每个部位做{}
一个for
循环的样子:
for (<declarations>; <!break_condition>; <after_each_iteration>)
这是最平常看到一个计数器初始化中的第一个语句,否定中断条件下的小于或大于条件的值,以及最终语句中的计数器递增值。
但是,三个部分的每一个的内容,只要它们在语法上有效,都可以是任何东西。
所讨论的循环遍历数组或对象的元素parts
,删除这些元素。与普通
举例循环使用:
基本上你可以重写一个for循环这样
for(var part = 0; i < that.length; part++) {}
改写为:
var part = 0;
while (i < that.length) {
// user code
part++;
}
在它是相同的,其他情况下:
for (var part; parts.length && (part = parts.shift());) {}
改写为:
var part;
while (parts.length && (part = parts.shift())) {
// user code
// no post code
}
那么,是什么意思呢?
这意味着有人不写好代码。
它应该是类似....
while (parts.length > 0)
{
var parts = parts.shift();
if (parts == null)
break;
...
,它不回答问题,而且完全是主观的。 – Mat 2011-04-02 14:59:43
不完全,'部分'在问题的循环中被清空。 – Mat 2011-04-02 14:48:26
true ..好点 – BugFinder 2011-04-02 14:57:57