国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

編寫更好的JavaScript條件式和匹配條件的技巧(小結)

2024-05-06 15:37:20
字體:
來源:轉載
供稿:網友

介紹

如果你像我一樣樂于見到整潔的代碼,那么你會盡可能地減少代碼中的條件語句。通常情況下,面向對象編程讓我們得以避免條件式,并代之以繼承和多態。我認為我們應當盡可能地遵循這些原則。

正如我在另一篇文章 JavaScript 整潔代碼的最佳實踐里提到的,你寫的代碼不單單是給機器看的,還是給“未來的自己”以及“其他人”看的。

從另一方面來說,由于各式各樣的原因,可能我們的代碼最終還是會有條件式。也許是修復 bug 的時間很緊,也許是不使用條件語句會對我們的代碼庫造成大的改動,等等。本文將會解決這些問題,同時幫助你組織所用的條件語句。

技巧

以下是關于如何構造 if...else 語句以及如何用更少的代碼實現更多功能的技巧。閱讀愉快!

1. 要事第一。小細節,但很重要

不要使用否定條件式(這可能會讓人感到疑惑)。同時,使用條件式簡寫來表示 boolean 值。這個無須再強調了,尤其是否定條件式,這不符合正常的思維方式。

不好的:

const isEmailNotVerified = (email) => { // 實現 } if (!isEmailNotVerified(email)) { // 做一些事... } if (isVerified === true) { // 做一些事... } 

好的:

const isEmailVerified = (email) => { // 實現 } if (isEmailVerified(email)) { // 做一些事... } if (isVerified) { // 做一些事... } 

現在,理清了上面的事情后,我們就可以開始了。

2. 對于多個條件,使用 Array.includes

假設我們想要在函數中檢查汽車模型是 renault 還是 peugeot。那么代碼可能是這樣的:

const checkCarModel = (model) => { if(model === 'renault' || model === 'peugeot') { console.log('model valid'); } } checkCarModel('renault'); // 輸出 'model valid' 

考慮到我們只有兩個模型,這么做似乎也還能接受,但如果我們還想要檢查另一個或者是幾個模型呢?如果我們增加更多 or 語句,那么代碼將變得難以維護,且不夠整潔。為了讓它更加簡潔,我們可以像這樣重寫函數:

const checkCarModel = (model) => { if(['peugeot', 'renault'].includes(model)) { console.log('model valid'); } } checkCarModel('renault'); // 輸出 'model valid' 

上面的代碼看起來已經很漂亮了。為了更進一步改善它,我們可以創建一個變量來存放汽車模型:

const checkCarModel = (model) => { const models = ['peugeot', 'renault']; if(models.includes(model)) { console.log('model valid'); } } checkCarModel('renault'); // 輸出 'model valid' 

現在,如果我們想要檢查更多模型,只需要添加一個新的數組元素即可。此外,如果它很重要的話,我們還可以將 models 變量定義在函數作用域外,并在需要的地方重用。這種方式可以讓我們集中管理,并使維護變得輕而易舉,因為我們只需在代碼中更改一個位置。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 台南县| 阆中市| 库尔勒市| 佛山市| 盐城市| 龙里县| 华池县| 皮山县| 浮梁县| 涪陵区| 黔南| 鄂伦春自治旗| 东平县| 怀安县| 苍山县| 福鼎市| 全州县| 南宫市| 都匀市| 屏东市| 岳池县| 治多县| 鄂托克旗| 莆田市| 甘孜| 邛崃市| 宁津县| 府谷县| 肥城市| 龙川县| 土默特右旗| 湘潭县| 河西区| 含山县| 周口市| 苏尼特右旗| 达州市| 巴彦淖尔市| 元朗区| 依安县| 横山县|