我只是碰到这种代码来到Mozilla的网站,而对我来说,它看起来坏了,很可能我不熟悉它的使用方法:分号在“for”开头如何工作?
for (; k < len; k++)
{
if (k in t && t[k] === searchElement)
return k;
}
如何在循环的开始分号工作?
完整的代码here.
我只是碰到这种代码来到Mozilla的网站,而对我来说,它看起来坏了,很可能我不熟悉它的使用方法:分号在“for”开头如何工作?
for (; k < len; k++)
{
if (k in t && t[k] === searchElement)
return k;
}
如何在循环的开始分号工作?
完整的代码here.
第一部分是用来初始化变量初始表达(见for
construct):
for ([initial-expression]; [condition]; [final-expression])
statement
托架在这种情况下,它是可选的意思。所以如果你没有任何初始化变量,你不需要写任何初始化表达式。如在此情况下k
是for
循环之前进行初始化:
var k = n >= 0
? n
: Math.max(len - Math.abs(n), 0);
for (; k < len; k++)
{
if (k in t && t[k] === searchElement)
return k;
}
你也可以写为:初始表达一部分,但是这不会是可读:
for (var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0); k < len; k++)
{
if (k in t && t[k] === searchElement)
return k;
}
谢谢,我没有意识到的变量是可选的很有道理,现在看到它这个样子。 – Stephen 2011-03-13 13:29:58