Zan*_*oni 7 javascript arrays performance
我正在阅读一篇文章:为执行速度优化JavaScript
还有一节说:
使用此代码:
for (var i = 0; (p = document.getElementsByTagName("P")[i]); i++)
Run Code Online (Sandbox Code Playgroud)
代替:
nl = document.getElementsByTagName("P");
for (var i = 0; i < nl.length; i++)
{
p = nl[i];
}
Run Code Online (Sandbox Code Playgroud)
出于性能原因.
根据文章,我总是使用"错误"的方式,但是,我错了还是文章错了?
如果您从 C# 等语言来看,您会期望第二条语句更有效,但 C# 不是解释器语言。
正如指南所述:您的浏览器经过优化,可以从实时列表中检索正确的节点,并且比从您在变量中定义的“缓存”中检索它们要快得多。此外,您还必须确定每次迭代的长度,这也可能会导致一些性能损失。
解释器语言的反应与编译语言不同,它们以不同的方式进行优化。