成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

編寫(xiě)可維護(hù)的JavaScript--編程風(fēng)格篇

AnthonyHan / 3255人閱讀

摘要:寫(xiě)在前面新司機(jī)最近讀完編寫(xiě)可維護(hù)的,學(xué)到不少東西。書(shū)分為編程風(fēng)格編程實(shí)踐自動(dòng)化三個(gè)部分。編程風(fēng)格并不是絕對(duì)的,每個(gè)人或團(tuán)隊(duì)都有自己的編程風(fēng)格,但知道哪些地方需要注意的話(huà),還是有助于新司機(jī)完成代碼風(fēng)格的轉(zhuǎn)變。

寫(xiě)在前面

新司機(jī)最近讀完《編寫(xiě)可維護(hù)的JavaScript》,學(xué)到不少東西。書(shū)分為編程風(fēng)格、編程實(shí)踐、自動(dòng)化三個(gè)部分。其中編程風(fēng)格是你的代碼格式約定,統(tǒng)一的格式不僅僅有利于團(tuán)隊(duì),也有助于提高新司機(jī)的代碼質(zhì)量和程序的可維護(hù)性。編程風(fēng)格并不是絕對(duì)的,每個(gè)人或團(tuán)隊(duì)都有自己的編程風(fēng)格,但知道哪些地方需要注意的話(huà),還是有助于新司機(jī)完成代碼風(fēng)格的轉(zhuǎn)變。

第1章 基本的格式化

1.1 縮進(jìn):制表符統(tǒng)一tab縮進(jìn)或空格縮進(jìn),不能混用
1.2 語(yǔ)句結(jié)尾不省略分號(hào)

// 錯(cuò)誤的例子
var x = 5
(function(){
    alert("不要省略分號(hào)");
})();

1.3 單行長(zhǎng)度:80字符以?xún)?nèi),長(zhǎng)字符用“+”分割
1.4 拆分換行:兩個(gè)制表符縮進(jìn),打斷點(diǎn)在符合后
1.5 空行,添加空白行區(qū)分代碼塊

每個(gè)流程控制語(yǔ)句(if,while,for...)之前

在方法定義之間

方法中局部變量和第一條語(yǔ)句之前

多行或單行注釋之前

方法內(nèi)邏輯片段之間

1.6 命名:

變量和函數(shù),遵守駝峰大小寫(xiě)命名法,變量前綴為名詞,函數(shù)前綴為動(dòng)詞,常見(jiàn)約定:can/has/is返回一個(gè)布爾值

常量:使用大寫(xiě)字母和下劃線(xiàn)來(lái)命名

構(gòu)造函數(shù):首字母大寫(xiě)的駝峰命名法

var setValue = function(){},    
    getValue = function(){},
    isEmpty = false,
    CONST_VALUE,                // 常量
    ConstructFunction;          // 構(gòu)造函數(shù)

1.7 直接量:

字符串:統(tǒng)一使用雙引號(hào),多行字符串由『+』連接

null使用場(chǎng)景:將它當(dāng)作占位符

初始化可能賦值對(duì)象的變量

與一個(gè)已經(jīng)初始化的變量比較

當(dāng)函數(shù)的參數(shù)期望是對(duì)象時(shí),用作參數(shù)傳入

返回值期望是對(duì)象時(shí),用作返回值

null不適合場(chǎng)景:不用null檢測(cè)是否傳入?yún)?shù)

禁用undefined

對(duì)象直接量初試化數(shù)組或?qū)ο?/p>

var arr = [1, 2, 3, 4],
    obj = {key1: value1, key2: value2}
第2章 注釋

2.1 單行注釋?zhuān)?/p>

用來(lái)解釋下一行代碼,注釋前有一個(gè)空行,縮進(jìn)與下一行一致

代碼尾部注釋?zhuān)a與注釋間至少有一個(gè)縮進(jìn),超過(guò)字符限度則應(yīng)放在代碼上方

2.2 多行注釋?zhuān)?/p>

注釋前有一個(gè)空行,縮進(jìn)與下一行一致

2.3 注釋的使用:代碼不夠清晰時(shí)添加注釋

難以理解的代碼

可能被誤認(rèn)為錯(cuò)誤的代碼

瀏覽器特性hack

文檔注釋?zhuān)簽槿缦聝?nèi)容添加注釋?zhuān)蟹椒ǖ墓δ?、期望參?shù)和返回值、構(gòu)造函數(shù)自定義類(lèi)型和期望參數(shù)

第3章 語(yǔ)句和表達(dá)式

3.1 花括號(hào)對(duì)齊方式:左括號(hào)放在第一句末尾,右括號(hào)放在代碼后一行
3.2 括號(hào)語(yǔ)句間隔:左括號(hào)之前,右括號(hào)之后添加空格
3.3 switch不漏掉break
3.4 避免使用with
3.5 for中避免使用continue
3.6 for-in使用 hasOwnProperty()方法遍歷實(shí)例屬性,for-in用來(lái)遍歷對(duì)象,不要用來(lái)遍歷數(shù)組

第4章 變量、函數(shù)和運(yùn)算符

4.1 變量聲明:將局部變量集中放在函數(shù)內(nèi)部第一條,var合并為一個(gè),初始化獨(dú)占一行放前面,沒(méi)初始值的放在后面。

var node1 = null,
    node2 = null,
    msg = "",
    i, len;

4.2 函數(shù)聲明:先聲明再使用,函數(shù)聲明不應(yīng)該出現(xiàn)在流程控制語(yǔ)句塊之內(nèi)。

// 錯(cuò)誤實(shí)例,函數(shù)提升使程序不會(huì)像想象中的那樣運(yùn)行
if(document.getElementsByClassName("cls")){
    function getClass(){ // someCode }
} else {
    function getClass(){ // someCode }
}

// 函數(shù)提升后,可以看成是
function getClass(){ /* someCode */ }
function getClass(){ /* someCode */ }
if(document.getElementsByClassName("cls")){
} else {
}

4.3 函數(shù)調(diào)用:函數(shù)名與括號(hào)間不加空格
4.4 匿名函數(shù)立即調(diào)用:使用括號(hào)包裹起來(lái),或添加注釋
4.5 嚴(yán)格模式:在函數(shù)體內(nèi)使用,而不要在全局作用域使用
4.6 相等:應(yīng)該使用 === 和 !== ,能夠避免強(qiáng)制類(lèi)型轉(zhuǎn)換,禁止直接使用原始類(lèi)型

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/87867.html

相關(guān)文章

  • 編寫(xiě)維護(hù)JavaScript》之編程實(shí)踐

    摘要:最近讀完編寫(xiě)可維護(hù)的,讓我受益匪淺,它指明了編碼過(guò)程中,需要注意的方方面面,在團(tuán)隊(duì)協(xié)作中特別有用,可維護(hù)性是一個(gè)非常大的話(huà)題,這本書(shū)是一個(gè)不錯(cuò)的起點(diǎn)。擴(kuò)展閱讀編寫(xiě)可維護(hù)的歡迎來(lái)到石佳劼的博客,如有疑問(wèn),請(qǐng)?jiān)谠脑u(píng)論區(qū)留言,我會(huì)盡量為您解答。 最近讀完《編寫(xiě)可維護(hù)的JavaScript》,讓我受益匪淺,它指明了編碼過(guò)程中,需要注意的方方面面,在團(tuán)隊(duì)協(xié)作中特別有用,可維護(hù)性是一個(gè)非常大的話(huà)...

    張春雷 評(píng)論0 收藏0
  • <<編寫(xiě)維護(hù)javascript>> 筆記3(語(yǔ)句和表達(dá)式)

    摘要:所有的塊語(yǔ)句都應(yīng)當(dāng)使用花括號(hào)包括花括號(hào)的對(duì)齊方式第一種風(fēng)格第二種風(fēng)格塊語(yǔ)句間隔第一種在語(yǔ)句名圓括號(hào)和左花括號(hào)之間沒(méi)有空格間隔第二種在左圓括號(hào)之前和右圓括號(hào)之后各添加一個(gè)空格第三種在左圓括號(hào)后和右圓括號(hào)前各添加一個(gè)空格我個(gè)人喜歡在右括號(hào)之后添 所有的塊語(yǔ)句都應(yīng)當(dāng)使用花括號(hào), 包括: if for while do...while... try...catch...finally 3....

    OBKoro1 評(píng)論0 收藏0
  • HTML-CSS-JS

    摘要:本周于上海閉幕,掘金和知乎上都有對(duì)應(yīng)的實(shí)錄和問(wèn)答,但會(huì)議的視頻目前都還沒(méi)放出來(lái),有心的同學(xué)如果找到了歡迎分享。建議中英文對(duì)照閱讀。英文原文前端獨(dú)立技術(shù)博客推薦推薦一些現(xiàn)在還在堅(jiān)持原創(chuàng)的博主,有業(yè)界大牛,也有小鮮肉,也有國(guó)外美女。 CSS 樣式書(shū)寫(xiě)規(guī)范最佳實(shí)踐 本文的所列是實(shí)踐當(dāng)中得出的一套比較不錯(cuò)的 CSS 書(shū)寫(xiě)規(guī)范,可以結(jié)合自身團(tuán)隊(duì)發(fā)展出一套適合自己業(yè)務(wù)的規(guī)范。 CSS中的字體與排版...

    mikasa 評(píng)論0 收藏0
  • HTML-CSS-JS

    摘要:本周于上海閉幕,掘金和知乎上都有對(duì)應(yīng)的實(shí)錄和問(wèn)答,但會(huì)議的視頻目前都還沒(méi)放出來(lái),有心的同學(xué)如果找到了歡迎分享。建議中英文對(duì)照閱讀。英文原文前端獨(dú)立技術(shù)博客推薦推薦一些現(xiàn)在還在堅(jiān)持原創(chuàng)的博主,有業(yè)界大牛,也有小鮮肉,也有國(guó)外美女。 CSS 樣式書(shū)寫(xiě)規(guī)范最佳實(shí)踐 本文的所列是實(shí)踐當(dāng)中得出的一套比較不錯(cuò)的 CSS 書(shū)寫(xiě)規(guī)范,可以結(jié)合自身團(tuán)隊(duì)發(fā)展出一套適合自己業(yè)務(wù)的規(guī)范。 CSS中的字體與排版...

    李世贊 評(píng)論0 收藏0
  • HTML-CSS-JS

    摘要:本周于上海閉幕,掘金和知乎上都有對(duì)應(yīng)的實(shí)錄和問(wèn)答,但會(huì)議的視頻目前都還沒(méi)放出來(lái),有心的同學(xué)如果找到了歡迎分享。建議中英文對(duì)照閱讀。英文原文前端獨(dú)立技術(shù)博客推薦推薦一些現(xiàn)在還在堅(jiān)持原創(chuàng)的博主,有業(yè)界大牛,也有小鮮肉,也有國(guó)外美女。 CSS 樣式書(shū)寫(xiě)規(guī)范最佳實(shí)踐 本文的所列是實(shí)踐當(dāng)中得出的一套比較不錯(cuò)的 CSS 書(shū)寫(xiě)規(guī)范,可以結(jié)合自身團(tuán)隊(duì)發(fā)展出一套適合自己業(yè)務(wù)的規(guī)范。 CSS中的字體與排版...

    MudOnTire 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<