# 第二堂週末任務 ###### tags: `六角學院` `JS 直播班 - 2021 秋季班` 目錄 --- * [JS 常見面試題目](#JS-常見面試題目) * [if 與 switch 的使用時機?](#if-與-switch-的使用時機?) * [何謂強制轉型、以及如何作到轉換型別?](#何謂強制轉型、以及如何作到轉換型別?) * [何謂表達式(Expression)與陳述式(Statement)?](#何謂表達式(Expression)與陳述式(Statement)?(需看到函式)-MVP-送-JS-研討會票種) * [流程圖接龍](#流程圖接龍) * [PVP 團戰 - 第四週闖關人數](#PVP-團戰---第四週闖關人數) ## JS 常見面試題目 ### if 與 switch 的使用時機? - **if else**:如果條件為不同區間、範圍取值(eg. 小於10、大於1),較適合。 - **switch case**:如果有確定的值(eg. 1, 2, 3...),或是了解「會有那些狀態」,較適合使用。 #### switch 語法 規則: - 拿 switch 後的值與 case 後的值做比較。 - switch 的比較是使用較嚴謹的 === 做比較。 - 一個 case 結束後,須加上 break 將其結束,否則不管值是否符合,皆會從上到下執行到結束。 - default 表示若所有 case 都不符合的話,將會執行 default 後的程式碼(通常放置最後面,但沒有強烈規定)。 語法舉例: ```javascript= let a = 1; switch (a) { // expression case 1: // value1 console.log("case 1") break; case 2: // value2 console.log("case 2") break; case 3: // value3 console.log("case 3") break; default: //當 expression 的值都不符合上述條件 console.log("都不符合") break; } // 印 "case 1" ``` 值與值的比較: (此範例可能比較適合用 if / else 來寫,這邊只是想表示 switch 是拿值做比較而不是帶入運算子做比較) ```javascript= function checkAge(age){ switch(age){ case (age > 18): console.log('case 1') break case (age == 18): console.log('case 2') break case (age < 18): console.log('case 3') break default: console.log("didn't match any one") break } } checkAge(12) // didn't match any one // 比較時的過程 // age === (age > 18) // 12 === true // 數字 12 不會等於布林值 true // return false ``` #### if-else 語法 小小規則: - if (條件式):條件式回傳 Boolean。 - if/else 只能有一個 (else 也可省略),else if 可以有多個。 - 條件式若是比較運算子的話,需要自己定義(==相對較嚴謹==)。 語法舉例: ```javascript= function checkAge(age){ if(age > 18){ console.log('case 1') } else if(age == 18){ console.log('case 2') } else if(age < 18){ console.log('case 3') } else{ console.log("didn't match any one") } } checkAge(12) // 'case 3' // 比較時的過程 // (age < 18) // 12 < 18 => true // 執行以下程式碼 // return 'case 3' ``` #### if-else / switch 優缺點比較 || if-else | switch | |:-:|:-:|:-:| |使用時機|有範圍的值 or 邏輯少(較少巢狀)|一個明確條件的值| |效能||✔| |易讀性|✔|| |嚴謹度|需要自己設定|預設較嚴謹| ### 何謂強制轉型、以及如何作到轉換型別? ### 何謂表達式(Expression)與陳述式(Statement)?(需看到函式) **MVP 送 JS 研討會票種** #### 參考資料 * []()