W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
npm 的編碼風(fēng)格有點(diǎn)不合常規(guī)。它并沒有因?yàn)椴町惗煌且环N精心設(shè)計(jì)的風(fēng)格,旨在減少視覺混亂并使錯(cuò)誤更加明顯。
如果你想為 npm 做出貢獻(xiàn)(這是非常受鼓勵(lì)的),你應(yīng)該讓你的代碼符合 npm 的風(fēng)格。
注意: 這涉及 npm 的代碼,而不是你可以從 npm 注冊(cè)表下載的特定包。
保持行短于 80 個(gè)字符。
一行代碼內(nèi)容短一些總比一長(zhǎng)串的代碼要來得好。將長(zhǎng)列表、對(duì)象和其他語句分解為多行。
兩個(gè)空格。 Tab 縮進(jìn)更好,但它們?cè)?Web 瀏覽器(和 GitHub 上)中看起來特別的不好,節(jié)點(diǎn)用 2 個(gè)空格,就是這樣。 應(yīng)該適當(dāng)?shù)嘏渲媚愕木庉嬈鳌?/p>
大括號(hào)與需要它們的內(nèi)容在同一行。 不好:
function()
{
好的:
function(){
如果塊需要換到下一行,請(qǐng)使用花括號(hào)。如果沒有,請(qǐng)不要使用它。 壞的:
if(foo){bar()}
while(foo)
bar()
好的:
if(foo) bar()
while (foo){
bar()
}
除了以下的四種情況之外,就不要使用它們:
(
或[
在該行的開始。這可以防止表達(dá)式分別被誤解為函數(shù)調(diào)用或?qū)傩栽L問。一些良好的分號(hào)用法示例:
;(x || y).doSomethin()
;[a, b, c].forEach(doSomething)
for (var i = 0; i < 10; i ++) {
switch (state) {
case 'begin': start(); continue
case 'end': finish(); break
default: throw new Error('unknown state')
}
end()
}
請(qǐng)注意,以-
and開頭的行+
也應(yīng)該以分號(hào)為前綴,但這種情況不太常見。
如果有一個(gè)由逗號(hào)分隔的事物列表,并且它包含在多行中,請(qǐng)將逗號(hào)放在下一行的開頭,直接在開始列表的標(biāo)記下方。將列表中的最后一個(gè)標(biāo)記單獨(dú)放在一行上。例如:
var magicWords = [ 'abracadabra'
, 'gesundheit'
, 'ventrilo'
]
, spells = { 'fireball' : function () { setOnFire() }
, 'water' : function () { putOut() }
}
, a = 1
, b = 'abc'
, etc
, somethingElse
對(duì)字符串使用單引號(hào),除非避免轉(zhuǎn)義。 壞的:
var notOk = "Just double quotes"
好的:
var ok = 'String contains "double" quotes'
var alsoOk = "String contains 'single' quotes or apostrophe"
在(
函數(shù)調(diào)用之外的任何內(nèi)容前面放置一個(gè)空格。也可以在任何使事情更具可讀性的地方使用單個(gè)空格。
不要在行尾留下尾隨空格。不要縮進(jìn)空行。不要使用多余的空格。
使用命名函數(shù)。它們使堆棧跟蹤更易于閱讀。
盡可能使用異步/非阻塞版本的事物。npm 使用同步 fs API 可能更有意義,但是這樣,fs 和 http 以及子進(jìn)程都使用相同的回調(diào)傳遞方法。
回調(diào)應(yīng)該始終是列表中的最后一個(gè)參數(shù)。它的第一個(gè)參數(shù)是 Error 或 null。
要非常小心,永遠(yuǎn)不要扔任何東西。這比沒用更糟糕。只需將錯(cuò)誤消息作為回調(diào)的第一個(gè)參數(shù)發(fā)送回即可。
始終使用您的消息創(chuàng)建一個(gè)新的 Error 對(duì)象。不要只是向回調(diào)返回一個(gè)字符串消息。堆棧跟蹤很方便。
日志記錄是使用[npm-config]()實(shí)用程序完成的。
當(dāng)日志不再有用時(shí),請(qǐng)清理日志。特別是,一遍又一遍地記錄同一個(gè)對(duì)象是沒有幫助的。日志應(yīng)該報(bào)告正在發(fā)生的事情,以便更容易地跟蹤故障發(fā)生的位置。
使用適當(dāng)?shù)娜罩炯?jí)別。查看 npm-config 并搜索 "loglevel"。
使用使用lowerCamelCase
時(shí),他們指的對(duì)象,函數(shù),方法,屬性,或者在本節(jié)中未指定任何東西多字的標(biāo)識(shí)符。
使用UpperCamelCase
的類名(的東西,你會(huì)傳遞到“新”)。
使用all-lower-hyphen-css-case
對(duì)多字的文件名和配置鍵。
使用命名函數(shù)。它們使堆棧跟蹤更容易跟蹤。
使用CAPS_SNAKE_CASE
常量,事情應(yīng)該不會(huì)改變,并且很少使用。
函數(shù)名使用單個(gè)大寫字母,函數(shù)通常是匿名的,但需要遞歸調(diào)用自身。它清楚地表明這是一個(gè)“一次性”功能。
布爾變量和函數(shù)應(yīng)始終為true
或?false
。不要將它設(shè)置為 0,除非它應(yīng)該是一個(gè)數(shù)字。
當(dāng)故意丟失或刪除某些內(nèi)容時(shí),請(qǐng)將其設(shè)置為null
。
不要將事情設(shè)置為undefined
.?保留該值以表示“尚未設(shè)置為任何內(nèi)容”。
禁止使用布爾對(duì)象。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: