# JavaScript|函式名稱 vs 參數名稱 到底誰是誰🤯 新手最常搞混的 JS 修羅場: 傳值的時候,常常不是報錯就是 undefined,最後整個人都卡在那邊便秘臉懷疑人生 到底要叫誰才會回應?🤯🤯🤯 ###本篇大綱 📝 - 函式名稱和參數名稱到底差在哪?每次呼叫都崩潰,到底要叫誰?╰(〒皿〒)╯ 🧷 附超直白理解地圖 & 常見小陷阱 - 常見的的命名方式,保證你同事不打你 - 小小測驗 看到這邊你就一級棒 🪬 ![到底誰是誰啊!?](https://hackmd.io/_uploads/SkJbn6aIge.png) <hr> ### 函式名稱 / 參數名稱是什麼? - **函式名稱** → 呼叫時用來執行功能 - **參數名稱** → 接收外部傳入的資料變數、內容 > ☝️ **小 tip**:參數只是暫時代號,等呼叫時才會真正傳進值! #### 白話圖解 🔍 ![function 參數白話圖解](https://hackmd.io/_uploads/Hyi3fpRIge.png) ↓ 來試試吧 ```javascript! function sayHello (name){ console.log('hello'+ name); } sayHello(' Anna'); // Anna 沒有定義,所以是字串必須要有引號 // 白話:sayHello 把 Anne 傳值進去 // 最後會印出 hello Anna // ✶ 要注意的陷阱, 沒有先把參數定義就是字串,要記得加引號 or 雙引號否則會報 not defined 因為找不到變數 sayHello(Anna); // ❌ 錯誤:Anna 沒有引號,JS 會當變數找,會報錯! ``` ↓ 最後成功印出 hello Anna ![image](https://hackmd.io/_uploads/r1JtF0TUgg.png) <hr> ### 常見參數命名(必學!) ###### *⌖最常見* - **駝峰式命名 camel Case** 不使用空格的短語書寫方式和駱駝的駝峰類似 -- 大駝峰:所有第一個單字大寫 ex: SayHello、GoodBye -- 小駝峰:第一個單字開頭字母小寫,第二個單字開頭字母為大寫 ex: sayHello、goodBye let userName = 'Anna'; - **蛇型命名 Snake Case** 全部小寫,單字和單字之間用底線連接(將空格以底線替代) ex: say_hello、good_bye let user_Name = 'Anna'; 寫完之後問問自己: 明天還看不看得懂用途和角色 命名是否一致,意義是否清楚 ## 🐮🔪小試: ```javascript! 天氣很熱,來到飲料店,要點QQ內內好喝到咩噗少全要怎麼傳送給店員? // 品名:QQ內內好喝到咩噗 冰塊:少冰 甜度:全糖 // 括號內先給他一個暫定名字,畢竟不知道客人要傳什麼很麻煩的飲料進來 function orderDrink( _____ , _____ , _____ ) { // 製作過程&打印,我們先打印餐點就好 console.log('顧客您好請確認您的餐點', _____ , _____ , _____ ); } orderDrink('_____' , '_____' , '_____' ); ``` ![快寫!](https://hackmd.io/_uploads/B1p8Uz0Ugl.png) 🪬🪬🪬 寫好了嗎?那換我囉 🪬 ```javascript! function orderDrink( teaName , iceLevel , sugerLevel ) { console.log('顧客您好請確認您的餐點', '品項 '+teaName , '冰量 '+iceLevel ,'甜度 '+sugerLevel ); } orderDrink('bubble tea', '70%', '100%'); ``` ![image](https://hackmd.io/_uploads/ryDnBG08ee.png) --- 📺 JS 新手宇宙 - EP . 01 ###### ( 你在這裡 ↓ ) [ 🩷 EP1 《 函式和參數名稱、傳值再也不會搞混! 》](https://hackmd.io/pPUQiXn2TgGJrDTSLJR6sw) [🩷 EP2 《 for 迴圈:愛你 10 天計畫 》](https://hackmd.io/@Ph6kL2hVQeu-dSTdobpoJw/rJF-uhgOll) [🩷 EP3 《 陣列 Array:push、pop、splice 魚塘管理💅 》](https://hackmd.io/@Ph6kL2hVQeu-dSTdobpoJw/ByqK9u-Klx) [🩷 EP4 《 物件 Object:80s 畢業紀念冊大曝光,二十年後我還記得你 💘 》](https://hackmd.io/@Ph6kL2hVQeu-dSTdobpoJw/SkkxzBY9ee) ##### 參考資料 {%preview https://developer.mozilla.org/zh-CN/docs/Glossary/Camel_case %}