JavaScriptの識別子の位置が深いほど、読み書きが遅くなります。したがって、関数内のローカル変数の読み取りと書き込みは常に最速であり、通常、グローバル変数の読み取りと書き込みは最も遅いです。適切な経験則は、クロススコープ値が関数で複数回参照されている場合、ローカル変数に保存します。
例えば:
コードコピーは次のとおりです。
<! - 最適化前 - >
<script type = "text/javascript">
関数initui(){
var bd = document.body、
links = document.getElementByTagname( "a")、
i = 0、
len = links.length;
while(i <len){
更新(リンク[i ++]);
}
document.getElementById( "go-btn")。onclick = function(){
始める();
}
bd.classname = "Active";
}
</script>
この関数はドキュメントを3回指し、ドキュメントはグローバルオブジェクトです。この変数を検索するプロセスは、グローバル変数オブジェクトで最終的に見つかるまで、スコープリンク全体を通過する必要があります。ローカル変数にグローバル変数への参照を保存し、グローバル変数の代わりにこのローカル変数を使用することにより、パフォーマンスへの影響を減らすことができます。
例えば:
コードコピーは次のとおりです。
<! - 最適化後 - >
<script type = "text/javascript">
関数initui(){
var doc = document、
bd = doc.body、
links = doc.getElementByTagname( "a")、
i = 0、
len = links.length;
while(i <len){
更新(リンク[i ++]);
}
doc.getElementById( "go-btn")。onclick = function(){
始める();
}
bd.classname = "Active";
}
</script>