我只是碰到這種代碼來到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