這篇文章主要為大家展示了“實用的JavaScript優化小技巧有哪些”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“實用的JavaScript優化小技巧有哪些”這篇文章吧。
網站建設哪家好,找創新互聯公司!專注于網頁設計、網站建設、微信開發、重慶小程序開發、集團企業網站建設等服務項目。為回饋新老客戶創新互聯還提供了掇刀免費建站歡迎大家使用!
一旦當我們寫到超過兩個if...else
的函數的時候就該想想是否有更好的優化方法。【相關推薦:javascript學習教程】
比如現在需要讓我們根據名稱計算出麥某勞的食品價格,你可能會這么做。
這樣的寫法會讓函數體有很多的條件判斷語句,而當我們想下次增加一個商品的時候就需要修改函數內的邏輯增加一個if...else
語句,這一定程度上也違反了開閉原則,當我們需要增加一個邏輯的時候要盡量通過擴展軟件實體來解決需求變化,而不是通過修改已有的代碼來完成變化。
這是很經典的優化方式,我們可以使用一個類似Map
機構的數據來保存所有商品,這里我們直接建立一個對象來存儲。
這樣我們下次需要再增加一個商品時就不需要改動getPrice
的邏輯了,當然了這里其實更多人喜歡直接在用的地方直接使用foodMap
,我這里只是簡單舉了個例子表述這個思路。
那么這時候就有同學會問了,如果我不想key
只用字符串呢,這時候你就可以用到new Map
了,思路也是差不多的,額外擴展一個實體來存儲變化。
有這么一個麥某勞食物列表
如果你想找出屬于套餐1的食物,你會怎么找呢?
上面這種是我們以前經常使用的方法,顯然我們替換成使用filter
與map
來取代for
循環不僅可以使代碼更精簡,還可以使語義更加明確,這樣我們一下就可以看出是先對數組過濾
再重組
。
還是上面的例子,如果我們要在這個食品對象數組中按照屬性值查找特定的食物時,find
的用處就出來了。
和上面兩個細節類似的這些都是既有的函數也就是不用我們重新寫的內置函數,巧用它會節省很多時間。
眾所周知,一碗康某傅老壇酸菜牛肉面有酸菜,面,牛肉粒,煙頭和腳皮組成,那我們想用函數證實這個面里面是否有腳皮我們怎么寫會比較簡潔呢?
同樣的,不止是康某傅的酸菜牛肉面可以這樣耍,所有類似的在數組里面找到特定元素的操作都可以使用includes
函數來調用。
我們通常在寫一些擁有返回值的函數的時候常常會以返回值變量命名而糾結,甚至對于一些長函數的時候還不使用變量而是直接return
,這樣的習慣其實是不好的,因為等我們下次再去參照這段代碼的時候還需要重新捋清邏輯。
通常的,在一個小函數中,我們可以使用result
作為返回值。
然而上面用result
作為返回值并不適用于所有情況,往往有些時候我們需要提前結束函數體來避免后面的同事閱讀多余的程序。
如下的例子中當我們selectedKey
不存在的時候應該立即return
,這樣就不用繼續閱讀下面的代碼,否則面對更復雜的函數時會增加很多的閱讀成本。
經常在我們通過請求拿到后端返回的數據會根據其中一些屬性進行處理,如果需要處理的屬性少的時候很多同學會習慣使用第一種方法。
但其實這種習慣是不好的,因為當你無法確定這個函數以后還需不需要增加依賴屬性的時候應該保持對象的完整,就像我上篇文章提到的,學會擁抱變化,假如getDocDetail
不止要用到icon
和content
,可能以后還會有title
,date
等屬性,所以我們不如直接將完整對象傳入,不僅增加縮短參數列表還會讓代碼更易讀。
當我們需要創建新變量時, 有時需要檢查為其值引用的變量是否為null
或未定義時, 就可以使用簡便寫法。
以上是“實用的JavaScript優化小技巧有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道!
網頁名稱:實用的JavaScript優化小技巧有哪些
URL鏈接:http://m.newbst.com/article32/pjdjsc.html
成都網站建設公司_創新互聯,為您提供網站營銷、品牌網站建設、定制網站、網站改版、ChatGPT、手機網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯