摘要:原文譯文個(gè)你需要了解的最佳開發(fā)實(shí)踐譯者的很多擴(kuò)展的特性是的它變得更加的犀利,同時(shí)也給予程序員機(jī)會(huì)創(chuàng)建更漂亮并且更讓用戶喜歡的網(wǎng)站。這里讓我們列出個(gè)最佳實(shí)踐,幫助你有效地使用。代碼即使最好的開發(fā)人員都會(huì)犯錯(cuò)。
原文:Top 10 “Must Follow” JavaScript Best Practices
譯文:10 個(gè)你需要了解的最佳 javascript 開發(fā)實(shí)踐
譯者:gbin1.com
Javascript 的很多擴(kuò)展的特性是的它變得更加的犀利, 同時(shí)也給予程序員機(jī)會(huì)創(chuàng)建更漂亮并且更讓用戶喜歡的網(wǎng)站。
盡管很多的開發(fā)人員都樂于頌揚(yáng) javascript,但是仍舊有人看到它的陰暗面。
使用很多 javascript 代碼的 web 頁面會(huì)加載很慢,過多的使用 javascript 使得網(wǎng)頁丑陋和拖沓。很快如何有效地使用 javascript 成為一個(gè)非?;馃岬脑掝}。
這里讓我們列出 10 個(gè)最佳 javascript 實(shí)踐,幫助你有效地使用 javascript。
1. 盡可能的保持代碼簡潔可能大家都聽到過了N遍這個(gè)代碼簡潔問題了。作為一個(gè)開發(fā)人員你可能在你的代碼開發(fā)過程中使用了很多次,但千萬不要在 js 開發(fā)中忘記這點(diǎn)。
盡量在開發(fā)模式中添加注釋和空格,這樣保持代碼的可讀性
在發(fā)布到產(chǎn)品環(huán)境前請(qǐng)將空格和注釋都刪除,并且盡量縮寫變量和方法名
使用第三方工具幫助你實(shí)現(xiàn)壓縮 javascript。
2. 思考后再修改 prototypes添加新的屬性到對(duì)象 prototype 中是導(dǎo)致腳本出錯(cuò)的常見原因。
yourObject.prototype.anotherFunction = ‘Hello’; yourObject.prototype.anotherMethod = function () { … };
在上面代碼中,所有的變量都會(huì)被影響,因?yàn)樗麄兌祭^承于 yourObject。這樣的使用會(huì)導(dǎo)致意想不到的行為。所以建議在使用完后刪除類似的修改。
yourObject.prototype.anotherFunction = ‘Hello’; yourObject.prototype.anotherMethod = function () { … }; test.anotherMethod(); delete yourObject.prototype.anotherFunction = ‘Hello’; delete yourObject.prototype.anotherMethod = function () { … };3. Debug Javascript 代碼
即使最好的開發(fā)人員都會(huì)犯錯(cuò)。為了最大化的減少類似錯(cuò)誤,請(qǐng)?jiān)谀愕?debugger 中運(yùn)行你的代碼,確認(rèn)你沒有遇到任何細(xì)微的錯(cuò)誤
4. 避免 Eval你的 JS 在沒有 eval 方法的時(shí)候也可以很好的工作。eval 允許訪問 javascript 編譯器。如果一個(gè)字符串作為參數(shù)傳遞到 eval,那么它的結(jié)果可以被執(zhí)行。
這會(huì)很大的降低代碼的性能。盡量避免在產(chǎn)品環(huán)境中使用 eval。
5. 最小化 DOM 訪問DOM 是最復(fù)雜的 API,會(huì)使得代碼執(zhí)行過程變慢。有時(shí)候 web 頁面可能沒有加載或者加載不完整。最好避免 DOM。
6. 在使用 javascript 類庫之前先學(xué)習(xí) javascript互聯(lián)網(wǎng)充斥著很多的 javascript 類庫,很多程序員都往往使用 js 類庫而不理解負(fù)面影響。強(qiáng)烈建議你在使用第三方類庫之前學(xué)習(xí)基本的 JS 代碼,否則,你就準(zhǔn)備著倒霉吧。
7. 不要用 "SetTimeOut" 和 "Setinterval" 方法來作為 "Eval" 的備選setTimeOut( "document.getID("value")", 3000);
在以上代碼中 document.getID("value") 在 setTimeOut 方法中被作為字符串來處理。 這類似于 eval 方法,在每個(gè)代碼執(zhí)行中來執(zhí)行一個(gè)字符串,因此會(huì)降低性能,因此,建議在這些方法中傳遞一個(gè)方法。
setTimeOut(yourFunction, 3000);8. [] 比 new Array(); 更好
一個(gè)常犯的錯(cuò)誤在于使用當(dāng)需要數(shù)組的時(shí)候使用一個(gè)對(duì)象或者該使用對(duì)象的時(shí)候使用一個(gè)數(shù)組。但是使用原則很簡單:
“當(dāng)屬性名稱是小的連續(xù)整數(shù),你應(yīng)該使用數(shù)組。否則,使用一個(gè)對(duì)象” - Douglas Crockford, JavaScript: Good Parts 的作者.
建議:
var a = ["1A","2B"];
避免:
var a = new Array(); a[0] = "1A"; a[1] = "2B";9. 盡量不要多次使用 var
在初始每一個(gè)變量的時(shí)候,程序員都習(xí)慣使用 var 關(guān)鍵字。相反,建議你使用逗號(hào)來避免多余的關(guān)鍵字,并且減少代碼體積。 如下:
var variableOne = ‘string 1’, variableTwo = ‘string 2’, variableThree = ‘string 3’;10. 不要忽略分號(hào) ";"
這往往是大家花費(fèi)數(shù)個(gè)小時(shí)進(jìn)行 debug 的原因之一。
我很確信你肯定也在其它的文章中閱讀過以上相關(guān)的內(nèi)容,但是大家可能往往都忽略了很多基本的規(guī)則。 你是不是也曾經(jīng)忽略過分號(hào)。是不是也遇到過 eval 關(guān)鍵字問題導(dǎo)致性能問題?
希望大家能夠喜歡,謝謝!
相關(guān)閱讀JavaScript中,{}+{}等于多少?
JavaScript:將所有值都轉(zhuǎn)換成對(duì)象
為什么 ++[[]][+[]]+[+[]] = 10?
相關(guān)書籍JavaScript語言精粹(修訂版)
JavaScript DOM編程藝術(shù)(第2版)
編寫可維護(hù)的JavaScript
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/77936.html
摘要:擁抱異步編程縱觀發(fā)展史也可以說成開發(fā)的發(fā)展史,你會(huì)發(fā)現(xiàn)異步徹底改變了這場(chǎng)游戲??梢赃@么說,異步編程已成為開發(fā)的根基。這也是你應(yīng)盡早在上投入大量時(shí)間的一處核心知識(shí)點(diǎn),這其中包含和等重要概念。這也是最突出的一項(xiàng)貢獻(xiàn)。 原文地址:Medium - Learning How to Learn JavaScript. 5 recommendations on how you should spend ...
摘要:系列種優(yōu)化頁面加載速度的方法隨筆分類中個(gè)最重要的技術(shù)點(diǎn)常用整理網(wǎng)頁性能管理詳解離線緩存簡介系列編寫高性能有趣的原生數(shù)組函數(shù)數(shù)據(jù)訪問性能優(yōu)化方案實(shí)現(xiàn)的大排序算法一怪對(duì)象常用方法函數(shù)收集數(shù)組的操作面向?qū)ο蠛驮屠^承中關(guān)鍵詞的優(yōu)雅解釋淺談系列 H5系列 10種優(yōu)化頁面加載速度的方法 隨筆分類 - HTML5 HTML5中40個(gè)最重要的技術(shù)點(diǎn) 常用meta整理 網(wǎng)頁性能管理詳解 HTML5 ...
摘要:系列種優(yōu)化頁面加載速度的方法隨筆分類中個(gè)最重要的技術(shù)點(diǎn)常用整理網(wǎng)頁性能管理詳解離線緩存簡介系列編寫高性能有趣的原生數(shù)組函數(shù)數(shù)據(jù)訪問性能優(yōu)化方案實(shí)現(xiàn)的大排序算法一怪對(duì)象常用方法函數(shù)收集數(shù)組的操作面向?qū)ο蠛驮屠^承中關(guān)鍵詞的優(yōu)雅解釋淺談系列 H5系列 10種優(yōu)化頁面加載速度的方法 隨筆分類 - HTML5 HTML5中40個(gè)最重要的技術(shù)點(diǎn) 常用meta整理 網(wǎng)頁性能管理詳解 HTML5 ...
摘要:歡迎來我的個(gè)人站點(diǎn)性能優(yōu)化其他優(yōu)化瀏覽器關(guān)鍵渲染路徑開啟性能優(yōu)化之旅高性能滾動(dòng)及頁面渲染優(yōu)化理論寫法對(duì)壓縮率的影響唯快不破應(yīng)用的個(gè)優(yōu)化步驟進(jìn)階鵝廠大神用直出實(shí)現(xiàn)網(wǎng)頁瞬開緩存網(wǎng)頁性能管理詳解寫給后端程序員的緩存原理介紹年底補(bǔ)課緩存機(jī)制優(yōu)化動(dòng) 歡迎來我的個(gè)人站點(diǎn) 性能優(yōu)化 其他 優(yōu)化瀏覽器關(guān)鍵渲染路徑 - 開啟性能優(yōu)化之旅 高性能滾動(dòng) scroll 及頁面渲染優(yōu)化 理論 | HTML寫法...
閱讀 3158·2021-11-10 11:36
閱讀 3350·2021-10-13 09:40
閱讀 6273·2021-09-26 09:46
閱讀 689·2019-08-30 15:55
閱讀 1437·2019-08-30 15:53
閱讀 1613·2019-08-29 13:55
閱讀 3022·2019-08-29 12:46
閱讀 3246·2019-08-29 12:34