摘要:這樣的變量增加了代碼量,并且混淆讀者。錯(cuò)誤代碼示例變量雖然聲明了,但沒(méi)被使用持續(xù)更新
JavaScript 編碼規(guī)范 一、命名規(guī)范 1. 變量
命名方法:小駝峰式命名法(由小寫(xiě)字母開(kāi)始,后續(xù)每個(gè)單詞首字母都大寫(xiě))
命名建議:語(yǔ)義化的名詞
特殊:
布爾值變量建議添加符合其含義的前綴動(dòng)詞
is:是否
can:能不能
has:有沒(méi)有
示例:
// 頁(yè)面標(biāo)題 let pageTitle = "JS命名規(guī)范"; // 是否顯示 let isShow = false;2. 常量
命名方法:全部大寫(xiě),用下劃線來(lái)分割單詞
3. 函數(shù)命名方法:小駝峰式命名法(由小寫(xiě)字母開(kāi)始,后續(xù)每個(gè)單詞首字母都大寫(xiě))
命名建議:語(yǔ)義化,前綴為動(dòng)詞
示例:
// 獲取列表數(shù)據(jù) function getList() { // ... }3. 類(構(gòu)造函數(shù))
命名方法:大駝峰式命名法(由大寫(xiě)字母開(kāi)始,后續(xù)每個(gè)單詞首字母都大寫(xiě))
命名建議:語(yǔ)義化的名詞
class Login { // ... }
實(shí)例屬性和方法(遵循變量和函數(shù)的命名規(guī)范)
class Login { // 實(shí)例屬性 name = "iqeq"; // 實(shí)例方法 login = function () { // ... } // 實(shí)例方法簡(jiǎn)寫(xiě) reset() { // ... } }
靜態(tài)屬性和方法(遵循變量和函數(shù)的命名規(guī)范)
class Login { // 靜態(tài)屬性 static description = "登陸業(yè)務(wù)邏輯"; // 靜態(tài)方法 static log = function () { // ... } }二、編碼規(guī)則 1. 禁止在function中定義同名的變量
如果在一個(gè)函數(shù)中出現(xiàn)多個(gè)同名的參數(shù),后面出現(xiàn)的會(huì)覆蓋前面出現(xiàn)的參數(shù)。
錯(cuò)誤代碼示例:
function foo(a, b, a) { console.log("value of the second a:", a); }
正確代碼示例:
function foo(a, b, c) { console.log(a, b, c); }2. 禁止對(duì)在代碼塊中聲明function
錯(cuò)誤代碼示例:
if (test) { function doSomethingElse () { // ... } doSomethingElse(); }
正確代碼示例:
function doSomethingElse () { // ... } if (test) { doSomethingElse(); }3. 禁止在 return throw continue和break語(yǔ)句后出現(xiàn)不可達(dá)代碼
錯(cuò)誤代碼示例:
function foo() { return true; console.log("done"); } function bar() { throw new Error("Oops!"); console.log("done"); } while(value) { break; console.log("done"); } throw new Error("Oops!"); console.log("done"); function baz() { if (Math.random() < 0.5) { return; } else { throw new Error(); } console.log("done"); }4. 禁止對(duì)原生對(duì)象賦值
錯(cuò)誤代碼示例:
window = {}; Object = null; undefined = 1;5. 禁止重新聲明變量
在JavaScript中,可以對(duì)同一個(gè)變量再次聲明。這會(huì)使變量實(shí)際聲明和定義的位置混亂不堪。
錯(cuò)誤代碼示例:
var a = 3; var a = 10;
正確代碼示例:
var a = 3; // ... a = 10;6. 禁止聲明未被使用過(guò)的變量
已聲明的變量在代碼里未被使用過(guò),就像是由于不完整的重構(gòu)而導(dǎo)致的遺漏錯(cuò)誤。這樣的變量增加了代碼量,并且混淆讀者。
錯(cuò)誤代碼示例:
function test(a) { // b變量雖然聲明了,但沒(méi)被使用 var b = 1; return a + 1; }
持續(xù)更新....
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/98044.html
摘要:當(dāng)然我們還可以引入框架,這些框架一般都自帶模板處理引擎,比如等語(yǔ)義化命名和語(yǔ)義化標(biāo)簽我們盡量多采用語(yǔ)義化來(lái)命名,并且采用語(yǔ)義化標(biāo)簽來(lái)書(shū)寫(xiě)代碼,多用中新增的標(biāo)簽來(lái)書(shū)寫(xiě)。 1.黃金法則(Golden rule) 不管有多少人參與同一個(gè)項(xiàng)目,一定要確保每一行代碼都像是同一個(gè)人編寫(xiě)的。 Every line of code should appear to be written by a si...
摘要:編碼規(guī)范是獨(dú)角獸公司內(nèi)部的編碼規(guī)范,該項(xiàng)目是上很受歡迎的一個(gè)開(kāi)源項(xiàng)目,在前端開(kāi)發(fā)中使用廣泛,本文的配置規(guī)則就是以編碼規(guī)范和編碼規(guī)范作為基礎(chǔ)的。 更新時(shí)間:2019-01-22React.js create-react-app 項(xiàng)目 + VSCode 編輯器 + ESLint 代碼檢查工具 + Airbnb 編碼規(guī)范 前言 為什么要使用 ESLint 在項(xiàng)目開(kāi)發(fā)過(guò)程中,編寫(xiě)符合團(tuán)隊(duì)編碼規(guī)...
摘要:用兩個(gè)空格代替制表符這是唯一能保證在所有環(huán)境下獲得一致展現(xiàn)的方法。編輯器配置將你的編輯器按照下面的配置進(jìn)行設(shè)置,以免常見(jiàn)的代碼不一致和差異用兩個(gè)空格代替制表符保存文件時(shí)刪除尾部的空白符設(shè)置文件編碼為在文件結(jié)尾添加一個(gè)空白行。 黃金定律 永遠(yuǎn)遵循同一套編碼規(guī)范 - 可以是這里列出的,也可以是你自己總結(jié)的。如果發(fā)現(xiàn)規(guī)范中有任何錯(cuò)誤,敬請(qǐng)指正。 HTML 語(yǔ)法 用兩個(gè)空格代替制表符 (ta...
摘要:寫(xiě)在前面對(duì)于不同的編程語(yǔ)言來(lái)說(shuō),具體的編碼規(guī)范各不相同,但是其宗旨都是一致的,就是保證代碼在高質(zhì)量完成需求的同時(shí)具備良好的可讀性可維護(hù)性。減少標(biāo)簽的數(shù)量編寫(xiě)代碼時(shí),盡量避免多余的父元素。 寫(xiě)在前面 對(duì)于不同的編程語(yǔ)言來(lái)說(shuō),具體的編碼規(guī)范各不相同,但是其宗旨都是一致的,就是保證代碼在高質(zhì)量完成需求的同時(shí)具備良好的可讀性、可維護(hù)性。 本文大部分內(nèi)容來(lái)自網(wǎng)上,僅供個(gè)人參考學(xué)習(xí)! 網(wǎng)絡(luò)上的知...
摘要:六字符編碼通過(guò)明確聲明字符編碼,能夠確保瀏覽器快速并容易的判斷頁(yè)面內(nèi)容的渲染方式。十一減少標(biāo)簽的數(shù)量編寫(xiě)代碼時(shí),盡量避免多余的父元素。未完待續(xù)編寫(xiě)靈活穩(wěn)定高質(zhì)量的代碼的規(guī)范閱讀更多 一、唯一定律 無(wú)論有多少人共同參與同一項(xiàng)目,一定要確保每一行代碼都像是唯一個(gè)人編寫(xiě)的。 二、HTML 2.1 語(yǔ)法 (1)用兩個(gè)空格來(lái)代替制表符(tab) -- 這是唯一能保證在所有環(huán)境下獲得一致展現(xiàn)的方法...
閱讀 3275·2023-04-25 22:47
閱讀 3790·2021-10-11 10:59
閱讀 2317·2021-09-07 10:12
閱讀 4274·2021-08-11 11:15
閱讀 3442·2019-08-30 13:15
閱讀 1760·2019-08-30 13:00
閱讀 979·2019-08-29 14:02
閱讀 1699·2019-08-26 13:57