首頁  >  文章  >  web前端  >  20條學習javascript的程式設計規格的建議_javascript技巧

20條學習javascript的程式設計規格的建議_javascript技巧

WBOY
WBOY原創
2016-05-16 16:29:531405瀏覽

1、使用js檔案管理程式碼

所有程式碼盡量放在js檔案中,然後再html檔案中使用script引入,引入時注意放在body標籤後面,並且不使用type或language。

2、書寫縮排

使用4個空白格縮進,注意不要使用tab鍵進行縮排。

3、斷句

注意行長,每行不超過80個字符,超過時要進行適當斷句,斷句應該再操作符後面進行,最理想的是在逗號(,)後面進行斷句,斷句後下一行使用8格縮排。

4、註

一般使用單行註釋,區塊註釋一般用於文件。

5、變數宣告

所有變數在使用之前先聲明,未聲明的變數會自動作為全域變數。全文應少使用全域變數。
最好把所有變數宣告用一個var實現,並且每個聲明單獨放一行,並添加註釋說明,如果可以所有聲明變數按照字元順序列出,如下:

複製程式碼 程式碼如下:

var currentEntry,      //目前選擇表項目
    level;          //縮排等級

在函數體內頂部定義所有變量,則var出現在函數體首行。

6、函數宣告

所有函數使用前應該先聲明,並且在變數之後進行-------有助於查看作用域。
函數名稱和括號直接不應該有空格;右括號(和函數參數之間不應該有空格;左括號)和函數體括號{之間有一個空格;函數體縮進4個空格;函數體結束括號}和函數聲明關鍵字function首字元對齊。如下碼:

複製程式碼 程式碼如下:

function outer(c,d) {
    var e = c * d;

    function inner(a,b) {
        return (e * a ) b;
    }

    return inner(0,1);
}


函數和物件可以被放在任何允許放表達式的地方。
匿名函數關鍵字function和左括號(之間有一個空格。
盡量少使用全域函數。
對於立即執行函數,整個呼叫表達式應放在一對個括號()裡面,以明確變數的值是函數執行結果而不是函數本身。如下碼:
複製程式碼 程式碼如下:

var result = (function () {
    var key = "";
    return {
        get: function () {
            return key;
        },
        set: function (key) {
            key = key;
        }
    };
}());

7、命名

以字母、數字、底線命名,避免使用國際字元、美元符號$、反斜線。
不要使用底線作為名稱的首位字元。
大多數變數和函數使用小寫字母開頭命名。
建構子必須使用大寫字母開頭,在js中省略new不會報錯(編譯或執行錯誤),但最好不要省略。
全域變數應用全部大寫命名(js沒有巨集和常數的概念)。

8、語句

簡單語句

每行最多一條語句,並且使用分號;結尾,注意以函數字面量和物件字面量賦值的語句也要使用分號;。
js允許任何一個變數作為一條語句,但是在插入分號的時候可能會造成某些錯誤,因此一般使用表達式的語句是賦值或函數呼叫語句(這句英文原文我大概理解了,但是不知道怎麼翻譯出來比較好)

複合語句(包含在一對{}之間的語句)

內部語句縮排4個空格。

左括號{應該在開始語句行的末尾。
右括號應該在最後單獨一行,並且與左括號所在行的首字對齊。
當語句在控制語句(例如for、if等)中時,應該使用花括號{}將語句包圍起來,即使只有一條語句,這樣可以保證在新增語句時不產生bug。

9、標籤(這部分的理解感覺不是很對)

要使用label的語句是有選擇性的,只有下面幾種:while、for、do、switch。

10、回傳語句

傳回的值應該用圓括號括起來,並且回傳表達式應該和return關鍵字在同一行(避免換行插入分號)。

11、if語句

遵循以下格式:

複製程式碼 程式碼如下:

if (condition) {
    statements
}

if (condition) {
    statements
} else {
    statements
}

if (condition) {
    statements
} else if (condition) {
    statements
} else {
    statements
}

12、for語句

遵循以下格式:

複製程式碼 程式碼如下:

for (initiliazation; condition; update) {
    statements
}

for (variable in object) {
    if (filter) {
        statements
    }
}


第一種循環格式用於數組和可以判斷迭代次數的變數。
第二中用於物件遍歷
註:這裡提到了在物件原型中新增的屬性是可以列舉的,因此要使用hasOwnProperty方法進行篩選,但是我用for in程式碼測試的時候,沒有顯示,這裡不知道問題出在了哪裡。

13、while語句

遵循以下格式:

複製程式碼 程式碼如下:

while (condition) {
    statements
}

14、do-while語句

遵循以下格式:

複製程式碼 程式碼如下:

do {
    statements 
} while (condition);

語句結尾要加分號。

15、switch語句

遵循以下格式:

複製程式碼 程式碼如下:

switch (expression) {
case expression:
    statements
default:
    statements
}

每一個case都要和switch對齊,避免過度縮排,只有case標籤不是語句,應該不應該縮排。
每個case語句(除了default)必須以break或return或throw結尾。

16、try語句

遵循以下格式:

複製程式碼 程式碼如下:

try {
    statements
} catch (variable) {
    statements
}
try {
    statements
} catch (variable) {
    statements
} finally {
    statements
}

17、continue語句

避免使用continue語句。

18、with語句

不應該使用with語句。

19、空格使用

透過設定空白行來分割邏輯相關的程式碼段,以增強程式碼可讀性。
在下列情況下設定空格:
關鍵字之後跟著左括號(要使用空格,例如:
while (true) {
不能在函數參數和左括號(之間使用空格。
除了點號(.)、左圓括號(()、方括號([)以外的二元運算子都要使用一個空格來和運算元分割開。
除了typeof以外的一元運算子和他的運算元之間不應有空格。
for語句控制區塊()中每個分號;之後有一個空格。
每個逗號後面要有一個空格。

20、額外建議

[]和{}
當成員名稱是連續整數時使用數組,當成員名稱是任意字串和名稱時使用物件。
使用{}取代new object(),使用[]取代new Array()。
逗號,操作符
避免使用逗號,運算子(這項規定不適用於物件字面量、陣列字面量定義和var聲明語句以及參數清單)
區塊級作用域
除了符合語句不使用語句區塊,js沒有區塊級作用域,只有函數作用域。
賦值表達式
while和if語句中條件判斷部分避免使用賦值語句。
===和!==
判定相等使用全等符號(===和!==),避免使用強制型別相等轉換符號(==和!=)。
若一個數字加(或-)一個帶有符號( 或-)的數字,或帶有( 或--)的數字,則需要將帶有符號或( 或--)的數字括起來。
eval是惡魔(eval的濫用l)
eval有相同情況,不應使用Function建構函數,不傳遞字串給setTimeout或setInterval函數。

以上20條建議都是本人在專案中總結出來的,對於新手學習javascript應該是小有幫助的,都是個人經驗,難免有不全面的地方,如果發現了,還請告之,這裡拋磚引玉,大家共同進步。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn