摘要:對(duì)于構(gòu)造函數(shù),使用大駝峰式大小寫。構(gòu)造函數(shù)的命名應(yīng)當(dāng)是名詞。引號(hào)的使用,字符串,傾向于使用單引號(hào),并始終保持這個(gè)風(fēng)格。塊語(yǔ)句間隔,推薦使用風(fēng)格。風(fēng)格風(fēng)格風(fēng)格此處省略了的使用規(guī)范使用規(guī)范循環(huán)必須使用。
基本格式
使用4個(gè)空格字符作為一個(gè)縮進(jìn)層級(jí),(記得配置編輯器)。
不要省略分號(hào)。
行的長(zhǎng)度限定在80個(gè)字符。
長(zhǎng)度超過(guò)限制時(shí),選擇在運(yùn)算符之后換行,下一行需要兩個(gè)層級(jí)的縮進(jìn)。例外,變量賦值以及變量聲明時(shí),第二行應(yīng)當(dāng)和賦值運(yùn)算符或第一個(gè)變量保持對(duì)齊。
適當(dāng)?shù)脑黾涌招校?br>
在方法之前。
在方法的局部變量和第一條語(yǔ)句之間。
在多行或單行注釋之前。
在方法內(nèi)的邏輯片段之間插入空行,提高可讀性。
變量和函數(shù)命名,統(tǒng)一使用小駝峰式大小寫,即首字母小寫,后續(xù)每個(gè)單詞首字母都大寫。對(duì)于構(gòu)造函數(shù),使用大駝峰式大小寫。匈牙利命名,如sName表示字符串,iCount表示整數(shù),不推薦使用。
推薦的命名方式
變量的命名應(yīng)當(dāng)是名詞。
函數(shù)和方法的前綴應(yīng)當(dāng)是動(dòng)詞。
構(gòu)造函數(shù)的命名應(yīng)當(dāng)是名詞。
一些常見動(dòng)詞的約定:
動(dòng)詞 | 含義 |
---|---|
can | 函數(shù)返回一個(gè)布爾值 |
has | 函數(shù)返回一個(gè)布爾值 |
is | 函數(shù)返回一個(gè)布爾值 |
get | 函數(shù)返回一個(gè)非布爾值 |
set | 函數(shù)用來(lái)保存一個(gè)值 |
常量,使用大寫字母和下劃線來(lái)命名,下劃線用以分隔單詞。
引號(hào)的使用,字符串,傾向于使用單引號(hào),并始終保持這個(gè)風(fēng)格。
null 的使用場(chǎng)景為,期望是對(duì)象的變量,參數(shù),返回值,把它當(dāng)作對(duì)象的占位符。
變量在聲明時(shí)即賦予初始值。undefined的問(wèn)題見下:
jsvar b; console.log(b) // undefined console.log(typeof b); // "undefined" console.log(c) // 報(bào)錯(cuò) console.log(typeof c) // "undefined" var a = {}; console.log(a.aaa) // undefined console.log(typeof a.aaa); // "undefined" console.log(d.aaa) // 報(bào)錯(cuò) console.log(typeof d.aaa); // 報(bào)錯(cuò)
對(duì)象和數(shù)組使用直接量進(jìn)行定義。
jsvar obj = { a: "a" } var arr = ["a","b","c"];注釋
單行注釋
用來(lái)解釋下一行代碼。請(qǐng)?jiān)谶@行注釋之前插入一個(gè)空行,且縮進(jìn)層級(jí)和下一行代碼保持一致。
在代碼行尾部的注釋。代碼結(jié)束到注釋之間至少由一個(gè)縮進(jìn)。該行不要超過(guò)最大字符限制,若超過(guò)請(qǐng)放置于該行上方。
注釋大段的代碼。
多行注釋
風(fēng)格如下:
js/* * 我是注釋 * 另一段注釋 */
與單行注釋一樣,注釋之前有一個(gè)空行。
縮進(jìn)與下一行代碼一致。
使用注釋
難以理解的代碼
可能被誤以為錯(cuò)誤的代碼
瀏覽器特性Hack
語(yǔ)句和表達(dá)式
所有的塊語(yǔ)句都應(yīng)該使用花括號(hào)。
if
for
while
do...while...
try...catch...finally
花括號(hào)的對(duì)齊規(guī)范
js// 推薦 if(condition) { doSomething(); } else { doSomethingElse(); } // 禁止,以免導(dǎo)致錯(cuò)誤的分號(hào)自動(dòng)插入。 if (condition) { doSomething(); } else { doSomethingElse(); }
塊語(yǔ)句間隔,推薦使用Google JavaScript風(fēng)格。
Dojo 風(fēng)格
jsif(condition){ doSomething(); }
Google JavaScript 風(fēng)格
jsif (condition) { doSomething(); }
jQuery 風(fēng)格
jsif ( condition ) { doSomething(); }
此處省略了switch for的使用規(guī)范
for-in 使用規(guī)范
for-in 循環(huán)必須使用 hasOwnProperty()。
除非你要查找原型鏈,但必須補(bǔ)充注釋。
不可用于遍歷數(shù)組,數(shù)組必須使用for。
變量、函數(shù)和運(yùn)算符js會(huì)將變量聲明提前,因此在函數(shù)內(nèi)部任意地方定義變量和在函數(shù)頂部定義變量是完全一樣的。
尤其是js沒(méi)有塊級(jí)作用域,需注意。推薦做法是,有意識(shí)地將聲明提升到函數(shù)塊的頂部來(lái)做。
函數(shù)聲明同樣也會(huì)被js提前。推薦做法是,先聲明后使用。
不可在條件語(yǔ)句中使用函數(shù)聲明。
嚴(yán)格模式,"use strict"; 不要將該指令寫到全局中,而是寫在函數(shù)塊內(nèi)。
始終使用 === 和 !== 。
禁止使用 eval() ,唯一例外:涉及到回調(diào)中解析JSON的情形。
禁止使用原始包裝類型(String,Boolean,Number)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/85858.html
摘要:網(wǎng)絡(luò)編程一直是的短板,盡管擴(kuò)展彌補(bǔ)了這個(gè)缺陷,但是其編程風(fēng)格偏向了或,與原本的同步編程風(fēng)格迥然相異。目前的大部分主流應(yīng)用框架依然是同步編程風(fēng)格,所以一直在探索與同步編程結(jié)合的途徑。正是連接同步編程和異步編程的一座橋梁,有興趣可以關(guān)注一下。 網(wǎng)絡(luò)編程一直是PHP的短板,盡管Swoole擴(kuò)展彌補(bǔ)了這個(gè)缺陷,但是其編程風(fēng)格偏向了NodeJS或GoLang,與原本的同步編程風(fēng)格迥然相異。目前P...
摘要:工作中好的編程風(fēng)格會(huì)更友好,不好的編程風(fēng)格會(huì)讓隊(duì)友難受變量的聲明使用和代替存在變量提升等副作用,聲明常量使用命名規(guī)范使用小駝峰命名,變量名可讀性好使用變量說(shuō)明不要出現(xiàn)讓人覺得晦澀難懂的變量不要重復(fù)命名當(dāng)一個(gè)對(duì)象名有意義的時(shí)候,對(duì)象里面的的命 工作中好的編程風(fēng)格會(huì)更友好,不好的編程風(fēng)格會(huì)讓隊(duì)友難受 變量的聲明 使用let和const代替var(var存在變量提升等副作用),聲明常量使用c...
摘要:寫在前面新司機(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ì),也...
摘要:最近在看一本有關(guān)編程規(guī)范的書,書中精煉闡述了使用語(yǔ)言時(shí)應(yīng)該遵循的一些原則。所以擁有良好一致的編程規(guī)范對(duì)于一個(gè)團(tuán)隊(duì)至關(guān)重要。二堅(jiān)持最小驚奇原則在編碼過(guò)程中盡量避免可能讓軟件用戶感到意外的做法。 最近在看一本有關(guān)Java編程規(guī)范的書,書中精煉闡述了使用java語(yǔ)言時(shí)應(yīng)該遵循的一些原則。接下來(lái)的一段時(shí)間我將在這里總結(jié)我的學(xué)習(xí)內(nèi)容,也希望這一系列文章能夠?qū)τ行枰娜擞兴鶐椭?不考慮任何編碼規(guī)...
摘要:如果團(tuán)隊(duì)成員文件合并,可能會(huì)讓團(tuán)隊(duì)其他成員的代碼報(bào)錯(cuò)推薦函數(shù)內(nèi)部,即布局作用域內(nèi)使用相等兩個(gè)等號(hào)判斷相等,容易出現(xiàn)強(qiáng)制類型轉(zhuǎn)換推薦使用三個(gè)等于號(hào)用來(lái)判斷相等原始包裝類型避免使用參考資料編寫可維護(hù)的 本文為《編寫可維護(hù)的JavaScript》讀書筆記 1、變量 變量名遵守駝峰大小寫命名法 命名前綴可為名詞,這樣可與函數(shù)名區(qū)分 常量利用大寫字母和下劃線(用來(lái)分隔單詞)來(lái)命名 所有變量聲明...
閱讀 3251·2021-11-24 09:39
閱讀 2935·2021-09-09 11:34
閱讀 3203·2021-09-07 09:58
閱讀 2307·2019-08-30 13:07
閱讀 2872·2019-08-29 15:09
閱讀 1569·2019-08-29 13:01
閱讀 2313·2019-08-26 12:18
閱讀 1937·2019-08-26 10:28