JavaScript 實戰開發經驗!“智力”測試
掌握JavaScript程式碼的你,一定編寫封裝過函式,為了提升函式的控制性,必不可少的就是引數,必選可選的一大堆引數羅列出來,函式呼叫貌似變得麻煩起來~~~
Tips:
必選引數指的是必須要傳入實參的引數;
可選引數在函式中有預設值,如有傳入實參,則取實參的值,如果沒有傳入實參,則使用預設值。
函式的眾多引數問題
當一個函式既有必選引數,又有可選引數,在定義函式時,我們可能採取的方式是:無論引數是可選引數還是必選引數,都將引數羅列下來(通常按照先必選再可選的順序)
但是這樣的羅列方法,會導致一些問題的產生!
舉例來說:有一個功能函式h5course,name和domain為其必選引數,而minAPP和book為其可選引數,而我們如此定義函式:
web前端JavaScript技術學習交流群640633433
此時,呼叫函式,需要傳入name、domain、book這三個引數,那麼,問題來了!
由於在函式定義當中,book的引數位置位於minApp引數之後,在呼叫函式時,如果希望為book這個引數傳入值,就必須按照如下方式進行書寫:
h5course('name引數值', 'domain引數值', '', 'book引數值');
不難發現,當前第三個引數的處理就變得麻煩起來。於是乎,可能很多人會在函式中通過新增if判斷,來進行引數控制 ——
此時仍然存在這樣兩個問題:
第一,函式的呼叫者必須要了解函式內部的引數判斷方式,才能夠正確書寫“不需要的可選引數”
第二,在呼叫多個可選引數的函式時,呼叫程式碼會變得很麻煩(當然你可以為函式新增註釋,降低使用時的難度)
更好的函式引數書寫方法!
面對如上的這些問題,下面這種方法,你值得擁有!
1 用物件替代掉原有的單個引數傳遞方式
2 函式內部使用arguments替換原有的形參
3 利用for-in迴圈,修改可選引數的預設值
一起來用此方法調整一下h5course函式
在此段程式碼當中,傳入了三個引數
for-in迴圈當中,為defaultValue新增了name和domain的值,並修改了minApp的內容
函式呼叫時,引數的處理會變得更方便簡單,但是也要注意,為了讓使用者清晰瞭解哪些引數是必須的,建議在函式前面新增合理註釋!
¥71.2
購買
web前端JavaScript技術學習交流群640633433
來個“智力”測試?
生活艱辛,程式碼不易,但,不要忘記微笑!
相關文章
- 敏捷開發的實戰經驗敏捷
- 如何獲取自動化測試實戰經驗
- 敏捷開發的6個實戰經驗敏捷
- Google Test交流與測試開發經驗總結Go
- 蔣煒航:敏捷開發的實戰經驗敏捷
- 測試開發必備技能:安全測試漏洞靶場實戰
- 我的 Android 開發實戰經驗總結Android
- 測試驅動開發(TDD)實戰心得 - DeniMoka
- Appium iOS 測試指令碼開發實戰APPiOS指令碼
- 《軟體測試實戰:微軟技術專家經驗總結》前言微軟
- 為什麼招聘測試人員需要有開發經驗
- 「Vue實戰」武裝你的專案 - 開發經驗分享Vue
- Java學習過程中實戰開發經驗重要嗎?Java
- 實戰開發經驗: 軟體系統設計思路薦
- 基於Python的測試驅動開發實戰Python
- 軟體測試之功能測試、效能測試經驗談
- [測試經驗] 依賴方介面呼叫測試
- 測試經驗總結:測試員的角色
- 開源測試工具 JMeter 介紹 - 物聯網大併發測試實戰 01JMeter
- 專案測試經驗交流
- 微軟測試工作經驗談微軟
- 2、房價預測實戰中學到的經驗
- 世界500強面試題(趣味智力測試題)面試題
- 十年測試經驗悟出的測試心得
- 實驗三--測試
- 《Tsuro》實戰分享:移動VR遊戲開發經驗與教訓VR遊戲開發
- 兩年測試經驗總結
- 剛轉行1年測試新手:學習Python程式設計經驗實戰分享Python程式設計
- Elasticsearch 實戰經驗總結Elasticsearch
- 測試開發實戰[提測平臺]17-Flask&Vue檔案上傳實現FlaskVue
- Jmeter效能測試實戰JMeter
- WEB安全測試實戰Web
- 別老拿 “開發測試比” 挑戰 QA
- 測試開發實戰[提測平臺]15-實現提測單修改和郵件標記
- 【Mock平臺】測試開發實戰01-開篇PRD和需求詳細Mock
- 軟體測試專案實戰之功能測試 千鋒實戰教程
- APP開發實戰176-伺服器介面的單元測試APP伺服器
- JMeter測試WebSocket的經驗總結JMeterWeb