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

資訊專欄INFORMATION COLUMN

編寫可維護(hù)的JavaScript

yanest / 720人閱讀

摘要:通用原則嚴(yán)禁使用,只在別無他法時(shí)使用。和也是可以使用的,但不用字符串形式而要用函數(shù)。每種類型都代表全局作用域中的一個(gè)構(gòu)造函數(shù),并分別表示各自對(duì)用的原始值的對(duì)象。

語句和表達(dá)式

所有的塊語句都應(yīng)當(dāng)使用花括號(hào)。包括:

if

for

while

do…while…

try…catch…finally

//不好的寫法
if (condition)
    doSomethind();
//不好的寫法
if (condition) doSomething();
//好的寫法
if (condition) {
    doSomethind();
}
//不好的寫法
if (condition) { doSomething(); }
花括號(hào)的對(duì)齊方式

兩種風(fēng)格:第一種將花括號(hào)放置在塊語句中第一行代碼的末尾;第二種將左花括號(hào)放置于塊語句首行的下一行。

塊語句間隔

語句名、圓括號(hào)、和左花括號(hào)之間沒有空格間隔

if(condition){

   doSomething();

}

在左圓括號(hào)之前和右圓括號(hào)之后各添加一個(gè)空格

if (codition) {

   doSomething:

}

在左圓括號(hào)后和右圓括號(hào)前各添加一個(gè)空格

if ( condition ) {

   doSomething();

}

個(gè)人比較喜歡第二種,易讀但不是太麻煩。

switch語句

縮進(jìn)

Java風(fēng)格:

switch (condition) {
    case "first":
        //code
        break;
    case "second":
        //code
        break;
    default:
        //code
}

每條case語句相對(duì)于switch關(guān)鍵字都縮進(jìn)一個(gè)層級(jí)
從第二條case語句開始,每條case語句前后都各有一個(gè)空行。

Dojo風(fēng)格:

switch (condition) {
case "first":
    //code
    break;
case "second":
    //code
    break;
default:
    //code
}

default
很多人認(rèn)為不論何時(shí)都不應(yīng)當(dāng)省略default,哪怕default什么都不做。
個(gè)人不太喜歡寫。

with語句

咱們就盡量不要寫with語句了。

for-in循環(huán)

最好使用hasOwnProperty()方法來為for-in循環(huán)過濾出實(shí)例屬性。

var prop;
for (prop in object) {
    if(object.hasOwnProperty(prop)) {
        console.log("...");
    }
}

不要把for-in用在數(shù)組的遍歷上

//不好的寫法
var vaules = [1, 2, 3],
    i;
for (i in vaules) {
    process(item[i]);
}
變量、函數(shù)和運(yùn)算符 變量聲明

建議將局部變量的定義作為函數(shù)內(nèi)第一條語句。

function doSomethingWithItems(items) {
    
    var i, len;
    var value = 10;
    var result = value + 10;
    for (i=0, len=items.length; i < len; i++) {
        doSomething(items[i]);
    }
}
函數(shù)聲明

推薦先聲明JavaScript函數(shù)然后使用函數(shù)。

function doSomething() {
    //code
}
doSomething();

此外,函數(shù)聲明不應(yīng)出現(xiàn)在語句塊之內(nèi)。
//不好的寫法

if (condition) {
    function doSomething() {
        //code
    }
} else {
    function doSomething() {
        //code
    }
}
函數(shù)調(diào)用間隔

推薦風(fēng)格:在函數(shù)名和左花括號(hào)之間沒有空格。

//好的寫法
doSomething(item);
//不好的寫法:看起來想一個(gè)塊語句
doSomething (item);
立即調(diào)用的函數(shù)

匿名函數(shù)可以通過在最后加上一對(duì)圓括號(hào)來立即執(zhí)行并返回一個(gè)值,然后將這個(gè)值賦值給變量。

// 不好的寫法
var value = function() {
    // 函數(shù)體
    return {
        message: "Hi"
    }
}();

為了讓立即執(zhí)行的函數(shù)能夠被一眼看出來,可以將函數(shù)用一對(duì)圓括號(hào)包裹起來。

// 好的寫法
var value = (function() {
    // 函數(shù)體
    return {
        message: "Hi"
    }
}());
嚴(yán)格模式

最好不要再全局作用域中使用"use strict"。

// 不好的寫法 - 全局的嚴(yán)格模式
"use strict";
function doSomething() {
    // code
}
// 好的寫法
function doSomething() {
    "use strict";
    // code
}
相等

推薦不要使用 == 和 !=,而應(yīng)當(dāng)使用 === 和 !==。

eval()

通用原則:嚴(yán)禁使用Function,只在別無他法時(shí)使用eval()。setTimeout()和setInterval()也是可以使用的,但不用字符串形式而要用函數(shù)。
ECMAScript 5 嚴(yán)格模式對(duì)于eval()有著嚴(yán)格的限制,禁止在一個(gè)封閉的作用域中使用它創(chuàng)建變量或者函數(shù)。

原始包裝類型

JavaScript里有三種原始包裝類型:String、Boolean和Number。每種類型都代表全局作用域中的一個(gè)構(gòu)造函數(shù),并分別表示各自對(duì)用的原始值的對(duì)象。

// 不好的做法
var name = new String("Nicholas");

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

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

相關(guān)文章

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

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

    張春雷 評(píng)論0 收藏0
  • 讀《編寫維護(hù)javascript》第一章

    摘要:沒有初始化的變量都會(huì)賦值為盡量避免使用因?yàn)闆]有聲明的變量也會(huì)判斷為類型。對(duì)象直接量,不建議使用構(gòu)造函數(shù)創(chuàng)建對(duì)象數(shù)組直接量,不建議使用構(gòu)造函數(shù)創(chuàng)建數(shù)組 編寫可維護(hù)代碼的重要性 程序是給人讀的,只是偶爾給機(jī)器運(yùn)行一下 1、軟件生命周期的80%成本是發(fā)生在為維護(hù)上;2、幾乎所有的軟件維護(hù)者都不是最初的創(chuàng)建者;3、編寫規(guī)范提高了軟件代碼的可讀性,它讓軟件工程師快速充分的理解代碼; 編寫規(guī)范 縮...

    maxmin 評(píng)論0 收藏0
  • javascript eval()——編寫維護(hù)javascript讀書筆記

    摘要:盡管在類庫(kù)中,可能會(huì)經(jīng)常用到通常和操作有關(guān),另外三種用法即使也非常罕見。一個(gè)通用的原則是,禁止使用,并且只在別無他法時(shí)使用,。和也是可以使用的,但不要用字符串形式而要用函數(shù) 再javascript中,eval()的參數(shù)是一個(gè)字符串,eval()會(huì)將傳入的字符串當(dāng)做代碼來執(zhí)行,開發(fā)者可以通過這個(gè)函數(shù)來載入外部的javascript代碼,活著隨機(jī)生成Javascript代碼并執(zhí)行它,比如:...

    lemon 評(píng)論0 收藏0
  • 編寫維護(hù)JavaScript--編程風(fēng)格篇

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

    AnthonyHan 評(píng)論0 收藏0
  • [JS進(jìn)階] 編寫維護(hù)性代碼 (1)

    摘要:如果值是基本類型,則用操作符檢查其類型??偨Y(jié)所有編程語言都需要可維護(hù)性良好的代碼,這個(gè)很重要,因?yàn)榇蟛糠珠_發(fā)人員都花費(fèi)大量時(shí)間維護(hù)他人的代碼。 o(╯□╰)o 這并不是什么史詩(shī)巨作,沒有非常深入去挖掘這類問題,只是從平常的JS代碼習(xí)慣,參考書籍總結(jié)而來,希望對(duì)你有幫助的! 今天的web應(yīng)用大至成千上萬行的javascript代碼,執(zhí)行各種復(fù)雜的過程,這種演化讓我們開發(fā)者必...

    Youngdze 評(píng)論0 收藏0
  • <<編寫維護(hù)javascript>> 筆記5(UI層松耦合)

    摘要:由于第四章太稀松平常了于是就直接跳到第五章了這里我就草草的說一下第四章的幾個(gè)點(diǎn)吧在嚴(yán)格模式的應(yīng)用下不推薦將用在全局作用域中相等推薦盡量使用和守則如果是在沒有別的方法來完成當(dāng)前任務(wù)這時(shí)可以使用原始包裝類型不推薦創(chuàng)建類型時(shí)用等創(chuàng)建類型從這一章節(jié) 由于第四章太稀松平常了, 于是就直接跳到第五章了.這里我就草草的說一下第四章的幾個(gè)點(diǎn)吧 在嚴(yán)格模式的應(yīng)用下 不推薦將use strict;用在全...

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

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

0條評(píng)論

yanest

|高級(jí)講師

TA的文章

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