這些是我寫代碼時(shí)的一些經(jīng)驗(yàn),總結(jié)了一下分想給大家,沒啥順序,想到就寫上了
1.使用局部變量避免使用全局變量 比如
function test(){ var s = document.getElementById('aaa'); s.innerHTML = document.body.clientHeight; }
改成
function test(){ var d = document; s = d.getElementById('aaa'); s.innerHTML = d.body.clientHeight; }
局部變量的好處就是減少了作用域鏈的查找 我建議要是有兩次的引用就用局部變量
2.避免使用with(這個(gè)估計(jì)地球人都知道)
我理解原因就是with會(huì)創(chuàng)建自己的作用域,這樣就加長了原來的作用域鏈,使得在with塊中執(zhí)行的代碼反而變慢了,在書寫上好像省了代碼,其實(shí)在訪問上反而變長變繁瑣了,性能下降了 例子 使用with
function test(){ with(document.body){ clientHeight = '200px'; clientWidth = '200px' } }
其實(shí)都可以寫成
function test(){ var ds = document.body; ds.clientHeight = '200px'; ds.clientWidth = '200px' }
3. 遍歷nodelist的方式
一般的方式都是
var as = document.getElementsByTagName('div'); for(var i=0,l<as.length;i<l;i++){//只計(jì)算一次長度} 我的方式一次都不用 for(var i=0,ci;ci=as[i++];){}當(dāng)nodeList完結(jié)時(shí)就為false就結(jié)束了 好處,沒計(jì)算長度,省了在循環(huán)里賦值,代碼更加少了,i++到了判斷里
(注意:這個(gè)方式用在nodelist里可以,如果你用到array里,可會(huì)有問題的,數(shù)組里有個(gè)0后者null什么的就瞎了)
出處:藍(lán)色理想
責(zé)任編輯:bluehearts
上一頁 下一頁 js優(yōu)化 [2]
◎進(jìn)入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。
|