---
# System prepended metadata

title: '[Live-log]_W4'
tags: [real-time, draft]

---

# [Live-log]_W4

###### tags: `draft`, `real-time`

## Main

- 今日 [22:30] 過後，錄下 5mins Youtube 影片
    - 抽３位送書

- 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% 
    - １２月加碼３週：９、１６、２３日
    - THE F2E 作品講解 Live 班
        - Zoom 的課程登錄網址不一樣，後續會寄給有完課的同學
    - 其餘獎項下週公開

<!-- 洧杰教課價碼 30 萬！？ -->

- １１月會公開畢業生薪資調查數據分析：
    - 必備技能：
        - 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] 第５題講解：沒有 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] 練習題－增加物件資料
    - Ｑ：為什麼上一題不用 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 也不會亮起來

