---
# System prepended metadata

title: W_ JS17 code review
tags: [CodeReview]

---

# Q1~Q5
### 嬿媜
#### Q1
- 簡化code
- return true
- 轉型問題
- 使用者輸入都是字串

#### Q2
- 嬿媜修改為隊問題動手腳
- promise可以提身使用者體驗 or prompt
- 研究同步非同步 && promise , prompt
- 根據問題數量去拆分 可以避免重複回答問題 這提我答錯時 又要重複輸入第一提
- 有機會研究mock

#### Q3
- 提示可以提昇使用者體驗 比方你的年齡有優惠喔之類得
- 命名問題 amusementPrice

#### Q4
- keyword:for break
- 邏輯拆分問題 formula得部份
- for迴圈預設i值 不要隨意更改預設 跟專案有關 

#### Q5
- 研究reduce
- 命名問題看 codecomplete ch.11
- 邏輯界面分開問題
- test驗證邊界 比方q3 驗證6 & 65
- test 可以包一起 一起測試 比方q5-testBundle
- js youtuber akshay saini 
- 內聚 ＆ 耦合

---

### 鵬化
#### Common
- code indent (manual or use tool, such as prettier)
- spelling check tool
- utilize validation rules
---
- 使用排版工具，
- 外掛檢視文字拼音工具spell checking
- 建立utilize做工具檔案管理。（我的module.js)
- 思考如何在需求不便，簡化code寫法
- 假設情境-在要改code得情況下，如果測試寫好，就可以順者測試得邏輯再去重寫，或是回推原本code，jest記號做好。（就像糖果屋得概念
- if已經算是測試true、false，所以不必特地在寫（我的q4module.js
- import、export其他用法
- keyword：嚴格模式、early return、promise、async await
- 思考code可讀性問題，該在何處加入換行
- 思考用recursive去改寫for
- 好讀、好寫、有架構才是現在重點，邏輯炫泡寫法已現階段是其次，不過作到專案也是相同邏輯

Q1問題目前還未解完，在研究一下

#### Q1
- strInput should Number type, in order to make your function scalable

#### Q2
- use early return, in order to make your conditions more readable
- your result does not show. XD


#### Q3
- There are only 2 conditions in this case, so the return is not necessary.

#### Q4
- checkOdd fn cam be simplify

### Chris
#### Q1
- 寫code像在寫春聯，有對丈，有關係，比方function參數是(a,b,c)，那變數得排序就是如下，a在最前 再來是b、c
    - let a = xxx
    - let b = xxx
    - let c = xxx
- 了解eventloop+loupe運作
- jest Describe就類似主標題or主題，所以要寫
#### Q4
- `key:F2` 是改全局文字，在js裡只會改動scope(more deteil pls check help => editor playground)
- understand <**Destructuring assignment**>
- check out `forEach,reduce`
- check out 除錯訊息，中斷點，callstack
- open chrome inspect and chlick source，if you see the function number all the same, can deduce it's **Recursion**
- check out 單部執行
- check out **pure**
- Chris suggest not useing prettier at frist at js
- correct code pls step by step
- Judging the values of 0 and 1 basically refers to the Boolean value
- not much people useing `continue`
- `if else` basically not breckble, becuase of relate issue
- check out 正反器,latch,filp flop
- jest can use try catch
- 測試重構不會出現bug
- if else = 2選1 正常流程
- try catch = 不正常流程
- 其他解法 2個數組放一起，然後在將兩兩數組相減 

---
# Q6~Q10

personal
Q7 簡單來說就是x軸與y軸交換

### Julia
#### Q6
- 迴圈的 i 可以建立名稱
- 因為 prompt 放在迴圈裡，所以造成輸入錯誤會回到上一動問題
- Julia 認知函式是動作，所以命名為動詞; Array 使用名詞
    - `nameList` better then `input4Name` because its `Array`
- 可建立 2 個函式，一個針對 odd單字 ，一個針對 odd 字母
- 在寫 code 時，假設函式裡有數值，建議為數值建立變數、常數
- 有 return 測試才能接收到

#### Q10
- jest 可測試 main 
- export 分兩種
    - named 可多個 export
    - defult 只能有一個，並且可隨意取名，可隨意 import 隨機名稱

### Eva
#### Q6
#### Q10

### Chris
#### Q6
- 想想命名用意，除了讓人理解或是讓人可猜測功能
- 檢查內容要與錯誤訊息要一致，這裡舉例驗證得`checkAlphabat`，驗證檢查字母，可是報錯訊息寫("檢查英文單字")，字母非單字
- `extractOddWordAddCommas`不是用來 `catch` 錯誤，所以不應該在 `try catch` 裡面，不符合這 function 作用
- 這 `function getName()` 裡面得 `prompt(input)` ，input 改為 question，因為 Fn 要做得事取得使用者名，但"如何作到"那就是問題，提出問題
- for 迴圈得 i 是控制迴圈用，關於 i 是否改名？如果使用 i 得情況夠單純，比如迴圈裡只有跑一行，那就不太需要改名稱
- 要確認
#### Q10
 
