これらは私がコードを書いたときの経験をまとめて共有したものです。順序はありません。思いついたままに書きました。
1. グローバル変数の使用を避けるためにローカル変数を使用する
例えば
に変更します
ローカル変数の利点は、参照が 2 つある場合に、スコープ チェーンの検索を軽減できることです。
2. との使用を避ける (地球上の誰もがこれを知っていると思います)
その理由は、with が独自のスコープを作成するため、元のスコープ チェーンが長くなり、with ブロック内で実行されるコードが遅くなるためであると理解しています。コードの記述が短縮されているように見えますが、実際にはアクセス時間が長くなります。煩雑になり、パフォーマンスが低下する例。
と一緒に使う
実際には次のように書くことができます
3. ノードリストを走査する方法
一般的な方法は
(注: このメソッドはノードリストで使用できますが、配列で使用すると問題が発生します。配列に 0 または null がある場合、ブラインドになります)
var as = document.getElementsByTagName('div');
for(var i=0,l<as.length;i<l;i++){//長さの計算は 1 回のみ}
私のやり方では一度もありません
for(var i=0,ci;ci=as[i++];){}nodeList が完了すると false となり終了します。
利点は、長さを計算する必要がなく、ループ内で値を代入する必要がなく、コードがさらに少なく、判定に i++ が使用されることです。
関数テスト(){
var ds = ドキュメント.ボディ;
ds.clientHeight = '200px';
ds.clientWidth = '200px'
}
関数テスト(){
with(document.body){
clientHeight = '200px';
clientWidth = '200px'
}
}
関数テスト(){
var d = ドキュメント;
s = d.getElementById('aaa');
s.innerHTML = d.body.clientHeight;
}
関数テスト(){
var s = document.getElementById('aaa');
s.innerHTML = document.body.clientHeight;
}