# [Live-log]_W4
###### tags: `draft`, `real-time`
## Main
- 今日 [22:30] 過後,錄下 5mins Youtube 影片
- 抽3位送書
- W4 講義裡面的小練習要回去自己試著寫
- W4 是總複習、不要放棄、盡量跟上
- W4 作業本來就要花兩週時間
- **函式**要多練習
- [10:05] W4 主線任務講解
- 【刻意練習】就算寫完,要練習 10 遍、練習錯誤、反覆練習
- 刻意練習自己不會的東西
- 先不要追求速度
- x100, x1,000
- 【Code Kata】
- 【Codewar】
- 【程式修煉】
- 練 10 遍很智障?
- <s>你才智障</s>
- 小組任務
- [10:15] 洧杰老師的進修課程
- 91 老師(joeychen)
- 400 lines 的 code 練習極速開發
- https://tdd.best/courses/extreme-developing-202203/
- 下週建議錄影章節觀看到 forEach
- 篩選資料
---
- 獎項:完課率 70%
- 12月加碼3週:9、16、23日
- THE F2E 作品講解 Live 班
- Zoom 的課程登錄網址不一樣,後續會寄給有完課的同學
- 其餘獎項下週公開
<!-- 洧杰教課價碼 30 萬!? -->
- 11月會公開畢業生薪資調查數據分析:
- 必備技能:
- CSR (Client-side Render)
- Git
- 前端必備:切版要好(Vue 不一定)
---
## [08:07] start
- 參數=輸入
- 輸入(參數) -> 編譯(函式) -> 輸出(return or console)
- 參數盡量不會太多(超過5個)
- [08:30] 範例:如何寫一個相減功能的**函式**
- 先寫基本小邏輯
- follow 「輸入、編譯、輸出」流程
- 找變因
- [08:35]
- 函式的參數與變數不同,參數只活在函式的{}裡。
- 離開後函式裡面會被清空
- let 存活在大括號裡面時,外面呼叫無用
- [08:40-08:50] 補充術語:
- **「let 宣告 的 變數作用域(scope) 在 區塊作用域(Block)內,而外面讀不到」**
- 範例:會出現錯誤:無法重複宣告
```
function numAdd(a, b) {
let a = 5
console.log(a + b)
}
numAdd(4, 5)
```
- [08:40] 小組填答時間
- https://chalk-freedom-ec6.notion.site/Part-1-1-5-4eec2b31bccf4e49837beccde91a628f
> ::: spoiler 答案
> - Ans:3, 2, 1, 2, 2
>
> - [09:55] 第5題講解:沒有 return
> :::
## [08:50] QK time
## [08:55] 下半堂
- 觀念:hoisting
- 函式好好寫放最上面就沒關係
- [09:00] 公布獎項
- [09:11] start
- 講義 input, output 練習題目-字串相加
- 數字處理:運用函式
- 常用
```
// 儲存運算後的資料
let data = 0
// 人數計算
function count(num) {
data += num; // 運算
console.log(data) // 印出來
console.log(num ** 2)
// 平方 2x2, 5x5, etc
}
```
### [09:23] BMI 解題流程實況
- **小步測試**
- 不用一口氣到位
- 先求有再求好
- [09:29] 助教解題影片-葉子
- [09:31] 助教解題影片-Ray
- VSCode 擴充套件:Quokka
- 可以即時預覽
- 不用跟瀏覽器切來切去
- 判斷式小 bug
```
1 < 2 < 3
// output: true
// 把判斷式寫這樣會被自動轉型哦
```
- [09:40] 練習題-檢查是否要帶雨具
- [09:42] 練習題-增加陣列資料
```
let data = []
function add(str) {
data.push(str)
console.log(data)
}
```
- [09:44] 練習題-增加物件資料
- Q:為什麼上一題不用 obj
- 因為這題 output 需求要的資料是 obj
```
let data =[]
function add(name, sex) {
let obj = {}
obj.name = name
obj.sex = sex
data.push(obj)
console.log(data)
}
```
- [09:48] 練習題-取得物件資料
```
function checkBMIStates(status) {
// let status = 'normal'
console.log(
`您的體重 ${bmiStatesData.[status].state}.指數為 ${bmiStatesData.[status].color}`)
}
```
- [09:55] 函式做完事情,可以把 value 回傳到指定位置
- Q: console.log(), 記憶體?
- 來不及惹、待補充
- VSCode 小技巧?
- 提前 return 時,後續沒被執行的 console.log 也不會亮起來