Switch-case to Object // ❌ 過多無謂的判斷及重新復賦值 const getDay = (type) => { let day = null; switch (type) { case 0: day = 'Sunday'; break; case 1: day = 'Monday'; break; case 2: day = 'Tuesday'; break; case 3: day = 'Wednesday'; break; case 4: day = 'Thursday'; break; case 5: day = 'Friday'; break; case 6: day = 'Saturday'; break; default: break; } return day; }; // ✅ 變得更一目了然、簡單明瞭 const days = { 0: 'Sunday', 1: 'Monday', 2: 'Tuesday', 3: 'Wednesday', 4: 'Thursday', 5: 'Friday', 6: 'Saturday', 7: 'Sunday', }; const getDay = (type) => { return days[type] || null; }; Default parameters // ❌ 預設參數不為最後一個 function getPassword(account, name = '', id) { // do something } // ❌ 若預設參數不為最後一個,則可能會有這種程式碼出現 (bad) getPassword(account, undefined, id); // ✅ 保持預設參數為最後一個的習慣 function getPassword(account, id, name = '') { // do something } // ✅ 若為最後一個,則可以避免剛才那種程式碼出現 (good) getPassword(account, id); Multiple parameters // ❌ 若過多個參數須控制,則會造成閱讀上的困難 function getPassword(account, id, name, birthday, sex, phone) { // do something } // ❌ 呼叫此 function 時,會需要數第幾個 getPassword(acc, id, roleName, roleBirthDay, roleSex, rowPhone); // ✅ 建議超過 3 個就改為物件 function getPassword({ account, id, name, birthday, sex, phone }) { // do something } // ✅ 呼叫此 function 時,也不需要數第幾個,名稱直接對應 getPassword({ account, id, name, birthday, sex, phone });