本篇內(nèi)容介紹了“有哪些簡(jiǎn)單的JS編碼標(biāo)準(zhǔn)”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)公司主營(yíng)紫陽(yáng)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app軟件定制開(kāi)發(fā),紫陽(yáng)h5成都小程序開(kāi)發(fā)搭建,紫陽(yáng)網(wǎng)站營(yíng)銷(xiāo)推廣歡迎紫陽(yáng)等地區(qū)企業(yè)咨詢(xún)
1. 比較時(shí)使用 === 代替 ==
這很重要,因?yàn)镴avaScript是一種動(dòng)態(tài)語(yǔ)言,因此使用==可能會(huì)給您帶來(lái)意想不到的結(jié)果,因?yàn)樗试S類(lèi)型不同。
Fail:
if (val == 2)
Pass:
if (val === 2)
2. 永遠(yuǎn)不要使用 var,使用 let 來(lái)代替
使用 let 將有助于避免 JavaScript 中各種 var 引起的作用域問(wèn)題。
Fail:
var myVar = 10;
Pass:
let myVar = 10;
3. 使用 const 代替 let
這阻止了開(kāi)發(fā)人員嘗試更改不應(yīng)該做的事情,并且確實(shí)有助于提高可讀性。
Fail:
let VAT_PERCENT = 20;
Pass:
const VAT_PERCENT = 20;
4. 始終使用分號(hào)(;)
盡管這在 JavaScript 中是可選的,并不像其它語(yǔ)言一樣需要分號(hào)作為語(yǔ)句終止符。但是使用 ; 有助于使代碼保持一致。
Fail:
const VAT_PERCENT = 20; let amount = 10 return addVat(amount, vatPercent)
Pass:
const vatPercent = 20; let amount = 10; return addVat(amount, vatPercent);
5. JavaScript中的命名約定
let 應(yīng)該使用駝峰命名。
const 如果在文件的頂部使用大寫(xiě)的蛇形命名法。如果不在文件頂部,請(qǐng)使用駝峰命名。
class 應(yīng)該是帕斯卡命名法:MyClass
functions 函數(shù)應(yīng)該是駝峰命名法:myFunction
6. 拼接字符串時(shí)使用模板字符串
模板字符串中允許嵌入表達(dá)式。
Fail:
let fullName = firstName + " " + lastName;
Pass:
let fullName = `${firstName} ${lastName}`;
7. 盡可能使用ES6箭頭函數(shù)
箭頭函數(shù)是編寫(xiě)函數(shù)表達(dá)式的更簡(jiǎn)潔的語(yǔ)法。
Fail:
var multiply = function(a, b) { return a* b; };
Pass:
const multiply = (a, b) => { return a * b};
8. 始終在控制結(jié)構(gòu)周?chē)褂么罄ㄌ?hào)
所有控制結(jié)構(gòu)都必須使用花括號(hào)(例如,if,else,for,do,while等),這樣后期維護(hù)時(shí),不容易出錯(cuò)。
Fail:
if (valid) doSomething(); if (amount > 100) doSomething(); else if(amount > 200) doSomethingElse();
Pass:
if (valid) { doSomething(); } if (amount > 100) { doSomething(); } else if(amount > 200) { doSomethingElse(); }
9. 確保大括號(hào)從同一行開(kāi)始,中間有空格
Fail:
if (myNumber === 0) { doSomething(); }
Pass:
if (myNumber === 0) { doSomething(); }
10. 嘗試減少嵌套
if 中嵌套if 會(huì)變得混亂并且很難閱讀。有時(shí)你可能無(wú)法解決問(wèn)題,但是可以好好查看代碼,看看是否可以改進(jìn)。
Fail:
if (myNumber > 0) { if (myNumber > 100) { if (!hasDiscountAlready) { return addDiscountPercent(0); } else { return addDiscountPercent(10); } } else if (myNumber > 50) { if (hasDiscountAlready) { return addDiscountPercent(5); } } else { if (!hasDiscountAlready) { return addDiscountPercent(0); } else { return addDiscountPercent(1); } } } else { error(); }
Pass:
if (myNumber <= 0) { return error; } if (!hasDiscountAlready) { return addDiscountPercent(0); } if (myNumber > 100) { return addDiscountPercent(10); } if (myNumber > 50) { return addDiscountPercent(5); } return addDiscountPercent(1);
通過(guò)上面的示例可以看出,減少嵌套之后,會(huì)變得容易閱讀。
11. 盡可能使用默認(rèn)參數(shù)
在 JavaScript 中,如果你在調(diào)用函數(shù)時(shí)沒(méi)有傳遞參數(shù),則它的值就是 undefined
Fail:
myFunction(a, b) { return a + b; }
Pass:
myFunction(a = 0, b = 0) { return a + b; }
12. `Switch` 語(yǔ)句應(yīng)使用 `break` 并具有 `default`
我通常會(huì)嘗試不使用 switch 語(yǔ)句,但是你確實(shí)想使用它,請(qǐng)確保每個(gè)條件都 break ,并寫(xiě)了 defalut。
Fail:
switch (myNumber) { case 10: addDiscountPercent(0); case 20: addDiscountPercent(2); case 30: addDiscountPercent(3); }
Pass:
switch (myNumber) { case 10: addDiscountPercent(0); break; case 20: addDiscountPercent(2); break; case 30: addDiscountPercent(3); break; default: addDiscountPercent(0); break; }
13. 不要使用通配符導(dǎo)入
Fail:
import * as Foo from './Foo';
Pass:
import Foo from './Foo';
14. 使用布爾值的快捷方式
Fail:
if (isValid === true) if (isValid === false)
Pass:
if (isValid) if (!isValid)
15. 嘗試避免不必要的三元語(yǔ)句
Fail:
const boo = a ? a : b;
Pass:
const boo = a || b;
“有哪些簡(jiǎn)單的JS編碼標(biāo)準(zhǔn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!