簡單的技巧有助於使程式碼更清晰、更容易
以我自己作為前端程式設計師的經驗,我在寫程式碼時經常養成自己的習慣,幫助程式碼變得靈活,提高程式碼的閱讀和維護能力。
這些都是非常簡單但非常有用的技巧,我想分享給你,讓你一眼就能完全理解。
技巧 1:減少 if-else 語句的數量
每次我們編寫使用超過2個if-else的東西時,我們都需要考慮是否有更優化的方式來編寫程式碼。一個簡單的例子如下:
function getPrice(item) { if (item === 'iPHONE') return 1.0; else if (item === 'Samsung') return 0.5; else if (item === 'Xiaomi') return 0.75; // more ... }
在這個例子中我正在編寫一個獲取手機品牌價格的函數,如果我想添加oppo手機的價格,我需要添加一個if-else分支,或者我想修改手機。 小米手機 我將不得不努力找到小米手機在我下巴的位置。
像這樣編寫程式碼可能會使程式碼容易出現錯誤,例如冗長、難以閱讀、難以搜尋和擴展。
但別擔心,我將向您展示如何在不違反 DRY 原則的情況下正確編寫它。我們將使用一個物件來儲存產品價格,而不是使用 if-else-if
鏈。
function getPrice(item) { const prices = { 'iPHONE': 1.0, 'Samsung': 0.5, 'Xiaomi': 0.75, 'Oppo': 0.6 }; return prices[item] || 0; // Trả về giá trị hoặc 0 nếu không có sản phẩm }
在上面的改進範例中,我們可以更清楚地閱讀程式碼,或者當我們想要更改產品的價格時,我們不需要更改 getPrice() 函數的核心邏輯。
技術 2:管線技術減少不必要的循環次數
const phones = [ { name: 'Apple', group: 1 }, { name: 'Samsung', group: 2 }, { name: 'Xiaomi', group: 1 }, // more items... ]; const group1 = []; for (let i = 0; i < phones .length; i++) { if (phones[i].group === 1) { group1.push(phones [i].name); } }
這是傳統的方式,可以使用for迴圈來遍歷陣列中的每個元素,檢查哪個元素滿足條件,然後將其新增至結果陣列。
雖然上面的方法並沒有錯,但是這樣寫程式碼會讓程式碼變得更冗長,難以閱讀。相反,我們可以使用filter和map等常用函數來幫助保持程式碼簡潔並增強語意。
const group1 = phones .filter(phone => phone.group === 1) .map(phone => phone.name);
技巧3:使用find替換重複的循環
繼續上面的電話部分範例。那麼使用find就顯示出明顯的方便
function getPrice(item) { if (item === 'iPHONE') return 1.0; else if (item === 'Samsung') return 0.5; else if (item === 'Xiaomi') return 0.75; // more ... }
這種搜尋方法可以讓你快速定位到陣列中第一個滿足給定條件的元素,使得程式碼比使用傳統循環更清晰。
技巧4:使用includes替換冗餘循環
當我們需要檢查陣列是否包含特定值時,使用 include 可以簡化程式碼,而不是循環遍歷數組來檢查元素是否存在。
例如:
function getPrice(item) { const prices = { 'iPHONE': 1.0, 'Samsung': 0.5, 'Xiaomi': 0.75, 'Oppo': 0.6 }; return prices[item] || 0; // Trả về giá trị hoặc 0 nếu không có sản phẩm }
您只需要使用包含:
const phones = [ { name: 'Apple', group: 1 }, { name: 'Samsung', group: 2 }, { name: 'Xiaomi', group: 1 }, // more items... ]; const group1 = []; for (let i = 0; i < phones .length; i++) { if (phones[i].group === 1) { group1.push(phones [i].name); } }
此方法為使用傳統循環的更繁瑣過程提供了一個優雅的解決方案。
在處理您經常需要檢查的陣列時,此功能特別有用。
技術 5:使用傳回唯一結果的變量
據我所知,尤其是在緊湊函數中,我們可以對返回結果使用一致的變數名稱。這澄清了傳回值的來源,並提供了標準的變數命名約定,如果其他人讀取您的程式碼,他們可以輕鬆識別它。
const group1 = phones .filter(phone => phone.group === 1) .map(phone => phone.name);
技術 6:維護物件完整性
在操作從後端傳回的 JSON 資料時,我們經常會在鍵值中單獨處理特定屬性。當我們有時遇到只使用少數屬性的情況時,這一點甚至更加明顯。 許多程式設計師傾向於只提取操作所需的屬性,這是人們想到的第一個方法,然而這是一種實用且短暫的做事方式。
當不確定函數稍後是否需要額外的依賴項時,建議保持整個物件的完整性。例如,功能組件可以使用圖示和內容,但稍後可以使用標題或日期。將整個物件傳遞給函數元件而不是單一屬性不僅可以減少 props 清單的長度,還可以增強程式碼的可讀性和靈活性
function getPrice(item) { if (item === 'iPHONE') return 1.0; else if (item === 'Samsung') return 0.5; else if (item === 'Xiaomi') return 0.75; // more ... }
function getPrice(item) { const prices = { 'iPHONE': 1.0, 'Samsung': 0.5, 'Xiaomi': 0.75, 'Oppo': 0.6 }; return prices[item] || 0; // Trả về giá trị hoặc 0 nếu không có sản phẩm }
?定論
上述 JS 編碼技術可以提高程式碼的品質效能,從長遠來看更容易閱讀和維護。因此,請在您的專案中嘗試這些簡單的技巧,並親身體驗這些改進。祝您編碼愉快! ! !
以上是簡單的技巧有助於使程式碼更清晰、更容易的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python和JavaScript開發者的薪資沒有絕對的高低,具體取決於技能和行業需求。 1.Python在數據科學和機器學習領域可能薪資更高。 2.JavaScript在前端和全棧開發中需求大,薪資也可觀。 3.影響因素包括經驗、地理位置、公司規模和特定技能。

實現視差滾動和元素動畫效果的探討本文將探討如何實現類似資生堂官網(https://www.shiseido.co.jp/sb/wonderland/)中�...

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

如何在JavaScript中將具有相同ID的數組元素合併到一個對像中?在處理數據時,我們常常會遇到需要將具有相同ID�...

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

探索前端中類似VSCode的面板拖拽調整功能的實現在前端開發中,如何實現類似於VSCode...
