JavaScript的高效優(yōu)化一直都是我們前端開(kāi)發(fā)中非常重要的工作,也是很多開(kāi)發(fā)人員無(wú)法做好的一部分內(nèi)容,所以今天我總結(jié)了10個(gè)優(yōu)化問(wèn)題,大家可以參考來(lái)做優(yōu)化,大部分問(wèn)題都是大家常遇到的。1、何時(shí)用單引號(hào),何時(shí)用雙引號(hào)
在JavaScript當(dāng)中,雖然雙引號(hào)和單引號(hào)都可以用來(lái)表示字符串, 但是為了避免混亂,所以我們建議在HTML中使用雙引號(hào),在JavaScript中使用單引號(hào)。不過(guò)為了與各種瀏覽器兼容并避免解析錯(cuò)誤,在定義JSON對(duì)象時(shí)最好使用雙引號(hào)。2、= =和= = =之間的區(qū)別
應(yīng)避免在if和while條件選擇語(yǔ)句中的條件判斷部分進(jìn)行賦值,如if (a = b),應(yīng)寫(xiě)成if (a == b),但是在比較是否相等的情況下,最好使用全等運(yùn)算符,也就是使用===和!==運(yùn)算符對(duì)比==和!=會(huì)好點(diǎn)。因?yàn)?=和!=運(yùn)算符會(huì)進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換。3、經(jīng)常檢查數(shù)據(jù)類(lèi)型
要檢查你的方法傳入的參數(shù),一方面是安全性,另一方面是可實(shí)用性。用戶(hù)隨時(shí)都有可能會(huì)誤操作傳入錯(cuò)誤的數(shù)據(jù)。這不是因?yàn)樗麄兊膯?wèn)題,而是因?yàn)樗麄兊乃季S方式和使用習(xí)慣和你不一樣。所以可以使用typeof方法可以幫助你檢測(cè)function接受的參數(shù)是否合法。4、函數(shù)返回統(tǒng)一類(lèi)型
雖然JavaScript是弱類(lèi)型的,在函數(shù)里,前面返回是整數(shù)型數(shù)據(jù),后面返回布爾值都可以正常的編譯和運(yùn)行的,但為了規(guī)范和后期維護(hù),應(yīng)保證函數(shù)返回統(tǒng)一的數(shù)據(jù)類(lèi)型。5、不要使用生偏語(yǔ)法
不要使用偏見(jiàn)語(yǔ)法,寫(xiě)一些令人困惑的代碼。雖然計(jì)算機(jī)可以正常識(shí)別和運(yùn)行,但這些難理解的代碼不便于以后的維護(hù)。6、刪除DOM節(jié)點(diǎn)
刪除DOM節(jié)點(diǎn)之前,記住要?jiǎng)h除注冊(cè)在該節(jié)點(diǎn)上的事件,不管是用observe方式還是用attachEvent方式來(lái)注冊(cè)的事件,否則會(huì)出現(xiàn)無(wú)法回收的內(nèi)存。此外,在removeChild和innerHTML=’ ’這兩個(gè),盡量選擇第二個(gè). 因?yàn)樵趕IEve(內(nèi)存泄露監(jiān)測(cè)工具)中監(jiān)測(cè)的結(jié)果是用removeChild無(wú)法有效地釋放DOM節(jié)點(diǎn)。7、插入迭代器
如var name=values[i]; i++;這兩條語(yǔ)句可以寫(xiě)成var name=values[i++]8、浮點(diǎn)數(shù)轉(zhuǎn)換成整型
很多人經(jīng)常喜歡使用parseInt()來(lái)做轉(zhuǎn)成整數(shù),其實(shí)parseInt()是用于將字符串轉(zhuǎn)換成整數(shù)的,而不是用于浮點(diǎn)數(shù)和整型之間轉(zhuǎn)換的。浮點(diǎn)轉(zhuǎn)整型我們應(yīng)該使用Math.floor()或者M(jìn)ath.round()9、多個(gè)類(lèi)型聲明
在JavaScript中所有變量都可以使用單個(gè)var語(yǔ)句來(lái)聲明,這樣就是組合在一起的語(yǔ)句,可以減少整個(gè)腳本的執(zhí)行時(shí)間。10、避免雙重解釋
要提高代碼性能,就盡可能避免出現(xiàn)需要按照J(rèn)avaScript解釋的字符串,也就是:
①.盡可能少使用eval函數(shù)
使用eval相當(dāng)于在運(yùn)行時(shí)再次調(diào)用解釋引擎對(duì)內(nèi)容進(jìn)行運(yùn)行,需要消耗大量時(shí)間。同時(shí),使用Eval帶來(lái)的安全性問(wèn)題也是不容忽視的。
②.不使用Function構(gòu)造器
不要給setTimeout或者setInterval傳遞字符串參數(shù)
分享文章:前端開(kāi)發(fā)中10個(gè)有關(guān)JavaScript優(yōu)化問(wèn)題
文章起源:http://m.newbst.com/news47/249947.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)、商城網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司、軟件開(kāi)發(fā)、云服務(wù)器
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源:
創(chuàng)新互聯(lián)