摘要:代碼約定可讀性以下地方需要進(jìn)行注釋函數(shù)和方法注釋參數(shù)代表什么,是否有返回值大段代碼描述任務(wù)的注釋復(fù)雜的算法變量和函數(shù)命名變量用名詞函數(shù)名用動(dòng)詞開(kāi)頭等返回布爾值類(lèi)型的函數(shù)用等合乎邏輯不用擔(dān)心太長(zhǎng)變量類(lèi)型透明化方法一初始化,如下推薦方法二匈牙利
代碼約定 可讀性
以下地方需要進(jìn)行注釋?zhuān)?/p>
函數(shù)和方法:注釋參數(shù)代表什么,是否有返回值;
大段代碼:描述任務(wù)的注釋?zhuān)?/p>
復(fù)雜的算法;
Hack
變量和函數(shù)命名變量用名詞;
函數(shù)名用動(dòng)詞開(kāi)頭:getName()等;
返回布爾值類(lèi)型的函數(shù)用isEnable()等;
合乎邏輯不用擔(dān)心太長(zhǎng);
變量類(lèi)型透明化方法一:初始化,如下:()推薦)
var isFound = false; //boolean var name = ""; //String var num = 0; //Number var person = null; //Object
方法二:匈牙利標(biāo)記法
var bIsFound; //boolean var sName; //String var nNum; //Number var oPerson; //Object
方法三:使用類(lèi)型注釋
var bIsFound /*boolean*/ = false; var sName /*string*/ = ""; var nNum /*number*/ = 0; var oPerson /*object*/ = null;松散耦合 HTML/JavaScript
應(yīng)該通過(guò)引用外部文件和使用DOM附加行為來(lái)包含js代碼
CSS/JavaScript應(yīng)該通過(guò)動(dòng)態(tài)更改樣式的類(lèi)(className)而非特定樣式來(lái)實(shí)現(xiàn)
編程習(xí)慣 尊重對(duì)象所有權(quán)不要修改和編輯不屬于你的對(duì)象,以及js原生類(lèi)型對(duì)象
避免全局量盡量避免全局變量和函數(shù):
var name = ""; function setName(value) { name = value; } function sayName() { console.log(name); }
上面的代碼應(yīng)該包含在一個(gè)對(duì)象中:
var setPersonName = { name: "", setName: function (value) { this.name = value; }, sayName: function () { console.log(this.name); } }; setPersonName.setName("Oli"); setPersonName.sayName(); //Oli使用命名空間
使用多個(gè)命名空間,其中的內(nèi)容互不干擾:
//全局對(duì)象 var Wrox = {}; //一個(gè)命名空間 Wrox.ProAjax = {}; Wrox.ProAjax.EventUtil = {}; Wrox.ProAjax.CookieUtil = {}; //另一個(gè)命名空間 Wrox.ProJS = {}; Wrox.ProJS.EventUtil = {}; Wrox.ProJS.CookieUtil = {};避免與null比較
當(dāng)看到了與null比較的代碼,應(yīng)該用以下技術(shù)替換:
引用類(lèi)型,用instanceof等;
基本類(lèi)型,用typeof等;
使用常量(略)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/78940.html
摘要:注意作用域避免全局查找以上代碼應(yīng)該修改如下避免語(yǔ)句必須使用語(yǔ)句的情況很少,因?yàn)樗饕糜谙~外的字符。將代碼分離稱(chēng)多個(gè)文件只是為了提高可維護(hù)性,并非為了部署。要進(jìn)行部署的時(shí)候,需要將這些源代碼合并為一個(gè)或幾個(gè)歸并文件。 注意作用域 避免全局查找 function updateUI () { var images = document.getElementsByTagName(...
摘要:重構(gòu)總共耗時(shí)個(gè)工作日。第一個(gè)重構(gòu)原因就是沒(méi)有引入靜態(tài)類(lèi)型,導(dǎo)致查看一個(gè)對(duì)象結(jié)構(gòu)需要翻來(lái)覆去在多個(gè)文件中查找。第三是各個(gè)狀態(tài)模塊耦合度高,加大了代碼維護(hù)難度。但如果耦合度過(guò)高,往往是因?yàn)槟K沒(méi)有細(xì)分到位。這個(gè)項(xiàng)目也不列外。 showImg(https://segmentfault.com/img/remote/1460000019660483); 不知不覺(jué)已是2019年的7月,恍惚之間已...
摘要:譯文地址譯唯快不破應(yīng)用的個(gè)優(yōu)化步驟前端的逆襲知乎專(zhuān)欄原文地址時(shí)過(guò)境遷,應(yīng)用比以往任何時(shí)候都更具交互性。使用負(fù)載均衡方案我們?cè)谥坝懻摼彺娴臅r(shí)候簡(jiǎn)要提到了內(nèi)容分發(fā)網(wǎng)絡(luò)。換句話(huà)說(shuō),元素的串形訪(fǎng)問(wèn)會(huì)削弱負(fù)載均衡器以最佳形式 歡迎關(guān)注知乎專(zhuān)欄 —— 前端的逆襲歡迎關(guān)注我的博客,知乎,GitHub。 譯文地址:【譯】唯快不破:Web 應(yīng)用的 13 個(gè)優(yōu)化步驟 - 前端的逆襲 - 知乎專(zhuān)欄原文地...
閱讀 3854·2021-10-11 10:58
閱讀 2140·2021-09-24 09:47
閱讀 591·2019-08-30 14:19
閱讀 1894·2019-08-30 13:58
閱讀 1526·2019-08-29 15:26
閱讀 707·2019-08-26 13:45
閱讀 2227·2019-08-26 11:53
閱讀 1853·2019-08-26 11:30