前端開發(fā)規(guī)范文檔

一、HTML規(guī)范:

Javascript代碼應(yīng)該盡量放在.js格式的文件中,需要調(diào)用的時候在頁面中以的形式包含進(jìn)來。Javascript代碼若不是該頁面專用的,則應(yīng)盡量避免在頁面中直接編寫Javascript代碼。

3,全局命名空間無法與IIFE:

總是將代碼包裹成一個IIFE(Immediately-Invoked Function Expression),用以創(chuàng)建獨(dú)立隔絕的定義域。這一舉措可防止全局命名空間被污染。

IIFE 還可確保代碼不會輕易被其它全局命名空間里的代碼所修改(第三方庫,window 引用,被覆蓋的未定義的關(guān)鍵字等等)。

// 不推薦


varx=10,

y=100;

console.log(window.x+' '+window.y);

// 推薦

(function(log, w, undefined){

varx=10,

y=100;

console.log((w.x === undefined) +' '+ (w.y === undefined));

}(window.console.log,window));

無論何時,想要創(chuàng)建一個新的封閉的定義域,那就用IIFE。它不僅避免了干擾,也使得內(nèi)存在執(zhí)行完后立即釋放。

所有腳本文件建議都從IIFE 開始。

立即執(zhí)行的函數(shù)表達(dá)式的執(zhí)行括號應(yīng)該寫在外包括號內(nèi)。雖然寫在內(nèi)還是寫在外都是有效的,但寫在內(nèi)使得整個表達(dá)式看起來更像一個整體,因此推薦這么做。

不推薦

(function(){})();

推薦

(function(){}());

如果想引用全局變量或者是外層IIFE 的變量,可以通過下列方式傳參:

(function($, w, d){

$(function() {

w.alert(d.querySelectorAll('div').length);

});

}(jQuery, window, document));

4,引號:

統(tǒng)一使用單引號(‘’),不使用雙引號(“”)。這在創(chuàng)建 HTML 字符串非常有好處:

varmsg='This is some HTML

'

;

5,變量生命:

總是使用var 來聲明變量。如不指定 var,變量將被隱式地聲明為全局變量,這將對變量難以控制。如果沒有聲明,變量處于什么定義域就變得不清(可以是在 Document 或 Window 中,也可以很容易地進(jìn)入本地定義域)。所以,請總是使用 var 來聲明變量。駝峰命名法。

不推薦

x=10;

y=100;

推薦

varx=10,

y=100;

6,數(shù)組和對象字面量:

用數(shù)組和對象字面量來代替數(shù)組和對象構(gòu)造器。數(shù)組構(gòu)造器很容易讓人在它的參數(shù)上犯錯。

不推薦

vara1=newArray(x1, x2, x3);

vara2=newArray(x1, x2);

vara3=newArray(x1);

vara4=newArray();

正因如此,如果將代碼傳參從兩個變?yōu)橐粋€,那數(shù)組很有可能發(fā)生意料不到的長度變化。為避免此類怪異狀況,請總是采用更多可讀的數(shù)組字面量。

推薦

vara= [x1, x2, x3];

vara2= [x1, x2];

vara3= [x1];

vara4= [];

對象構(gòu)造器不會有類似的問題,但是為了可讀性和統(tǒng)一性,我們應(yīng)該使用對象字面量。

不推薦

varo=newObject();

varo2=newObject();

o2.a=0;

o2.b=1;

o2.c=2;

o2['strange key'] =3;

推薦

varo= {};

varo2= {

a:0,

b:1,

c:2,

'strange key':3

};

7,函數(shù)聲明:

函數(shù)應(yīng)在調(diào)用前進(jìn)行聲明,內(nèi)部函數(shù)應(yīng)在var 聲明內(nèi)部變量的語句之后聲明,可以清晰地表明內(nèi)部變量和內(nèi)部函數(shù)的作用域。

此外,函數(shù)名緊接左括號'('之間,而右括號')'和后面的'{'之間要有個空格,以清楚地顯示函數(shù)名以其參數(shù)部分,和函數(shù)體的開始。若函數(shù)為匿名 / 無名函數(shù),則 function 關(guān)鍵字和左括號'('之間要留空格,否則可能誤認(rèn)為該函數(shù)的函數(shù)名為 function。

varinnerA=1;

functionoutF() {

varinnerA=2;

function_inf() {

alert(‘valueA=’+innerA);

}

_inF();

}

outF();

_inF();

8,語句塊內(nèi)的函數(shù)聲明:

切勿在語句塊內(nèi)聲明函數(shù),在ECMAScript 5 的嚴(yán)格模式下,這是不合法的。函數(shù)聲明應(yīng)該在定義域的頂層。但在語句塊內(nèi)可將函數(shù)申明轉(zhuǎn)化為函數(shù)表達(dá)式賦值給變量。

不推薦

if(x) {

functionfoo() {}

}

推薦

if(x) {

varfoo=function() {};

}

9,流程控制:

if、while、for、do語句的執(zhí)行體總是用"{"和"}"括起來,即使在其結(jié)構(gòu)體內(nèi)只有一條語句

if(s==100) {

alert('shit!');

}

不要使用switch。switch 在所有的編程語言中都是個非常錯誤的難以控制的語句,建議用 if else 來替換它。

10,操作符:

(1)三元條件判斷(if 的快捷方法)

用三元操作符分配或返回語句。在比較簡單的情況下使用,避免在復(fù)雜的情況下使用。沒人愿意用10 行三元操作符把自己的腦子繞暈。

不推薦

if(x ===10) {

return'valid';

}else{

return'invalid';

}

推薦

returnx ===10?'valid':'invalid';

11,注釋:

(1)文件注釋

文件注釋要標(biāo)明作者、文件版本、創(chuàng)建/修改時間、重大版本修改記錄

函數(shù)描述

文件版本、創(chuàng)建或者修改時間、功能、作者

/**

* @file Image.js

* @description 功能詳細(xì)描述

*/

2函數(shù)或者類等都要添加頭描述

/**

* 簡述

*

* 功能詳細(xì)描述

*

* @param arg1 參數(shù)1

* @param arg2 參數(shù)2,默認(rèn)為0

* @return 看xxx是否成功

*/

function fooFunction (arg1, arg2) {

}

(2)操作注釋

單行注釋,寫在代碼上面

多行注釋

/*

* 注釋操作說明

*/

for( var i = 0; i < obj.lenght; i++) {

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、HTML規(guī)范: Javascript代碼應(yīng)該盡量放在.js格式的文件中,需要調(diào)用的時候在頁面中以的形式包含進(jìn)來...
    Leslie_2386閱讀 634評論 0 0
  • Web前端開發(fā)規(guī)范文檔 規(guī)范目的: 使開發(fā)流程更加規(guī)范化。 通用規(guī)范: TAB鍵用兩個空格代替(WINDOWS下T...
    蕎葉閱讀 568評論 0 1
  • 基本準(zhǔn)則 符合web標(biāo)準(zhǔn),html語義化;html,css,JavaScript分離;代碼簡潔有序,盡可能減少冗余...
    喵嗚君閱讀 874評論 0 1
  • 一.規(guī)范目的 使開發(fā)流程更加規(guī)范化。 二.通用規(guī)范 TAB鍵用兩個空格代替(WINDOWS下TAB鍵占四個空格,L...
    overflow_hidden閱讀 2,513評論 0 0
  • 我的一段友誼死在了“網(wǎng)絡(luò)傳銷”―― 這下這篇文章只是想從自己的角度談?wù)劸W(wǎng)絡(luò)傳銷的危害,因?yàn)榫驮谥安痪?,被曾?jīng)好...
    金毛狗子閱讀 583評論 3 2

友情鏈接更多精彩內(nèi)容