這些是我寫程式碼時的一些經驗,總結了一下分想給大家,沒啥順序,想到就寫上了
1.使用局部變數避免使用全域變數
比如
改成
局部變數的好處就是減少了作用域鏈的查找我建議要是有兩次的引用就用局部變量
2.避免使用with(這個估計地球人都知道)
我理解原因就是with會創建自己的作用域,這樣就加長了原來的作用域鏈,使得在with塊中執行的代碼反而變慢了,在書寫上好像省了代碼,其實在訪問上反而變長變繁瑣了,性能下降了例子
使用with
其實都可以寫成
3. 遍歷nodelist的方式
一般的方式都是
(註:這個方式用在nodelist裡可以,如果你用到array裡,可會有問題的,數組裡有個0後者null什麼的就瞎了)
var as = document.getElementsByTagName('div');
for(var i=0,l<as.length;i<l;i++){//只計算一次長度}
我的方式一次都不用
for(var i=0,ci;ci=as[i++];){}當nodeList完結時就為false就結束了
好處,沒計算長度,省了在循環裡賦值,程式碼更加少了,i++到了判斷裡
function test(){
var ds = document.body;
ds.clientHeight = '200px';
ds.clientWidth = '200px'
}
function test(){
with(document.body){
clientHeight = '200px';
clientWidth = '200px'
}
}
function test(){
var d = document;
s = d.getElementById('aaa');
s.innerHTML = d.body.clientHeight;
}
function test(){
var s = document.getElementById('aaa');
s.innerHTML = document.body.clientHeight;
}