---
# System prepended metadata

title: 第四堂：函式設計之術
tags: [JS 直播班 - 2021 秋季班]

---

---
tags: JS 直播班 - 2021 秋季班
---


# 第四堂：函式設計之術
* [報到](https://rpg.hexschool.com/training/24/calendar) Code：`MSCMJv2Vu86i`
* [BMI Kata 武道大會](https://forms.gle/FAbNfYdqWsfyzyZX8)
* 中間公布

## 服務加碼升級
1. 之後的每週二早上 11 點，穎旻會直播講解作業內容，**也會錄影**
2. 提供每日助教發問服務！


![](https://i.imgur.com/yMgLIvv.png)



## 時間點
* 12/3 最後一堂課
* 12/17 作業截止日

## function 寫法教學 - 設定指令
- 以一天會做的行為當作例子
- 參數寫法介紹
    - 加法器
- return 寫法介紹
    - let 宣告
    - return 多個範例

## if 與 function 的差別
- 直接寫 if 的話，.js 裡只會執行一次
- 寫 function 的話，可以依照自己需求，執行多次執行指令

## 小組題目挑戰！
* [小組填答區](https://forms.gle/qzQmr1MNQyMrZbH78)
* [46~50](https://chalk-freedom-ec6.notion.site/Part-1-46-50-3b71ce9efb0d4f7c9803961e27a39264)
* [51~55](https://www.notion.so/Part-2-51-55-c6e273e42f314308872fc098267cade4)
* [56~60](https://www.notion.so/Part-3-56-60-5ee63fa6f38140228f91312ff2d8513a)


## input output 練習
* [示意流程圖](https://whimsical.com/RTJhrsaGwpZ8NbXvQjutB7)

### 題目列表
**字串相加**
``` javascript
//input
talk("早上好");
talk("晚上好");

// output
// "hi，早上好"
// "hi，晚上好"
```
**數字處理**
``` javascript
let data = 0;
//input
count(2);
count(3);
count(5);

// output
//2
//5
//10
```

**數字**


``` javascript
//input
count(2); 
count(3); 
count(5); 

// output
// 4
// 9
//25
```

**兩位數四舍五入**
``` javascript
twoFixed(1.8888) 
twoFixed(3.1234)

// output
// 1.89
// 3.13
```

**BMI** 

``` javascript
calcBmi(178,69) 

//output
//21.78

```

**檢查是否需要帶雨具+if**

``` JavaScript
checkWeater("雨天"); // 要帶雨具
checkWeater("晴天"); //不用帶雨具
```

**增加陣列資料**

``` JavaScript
let data = [];
add("hello"); 
add("你好嗎？"); 

// output 
// ["hello","你好嗎？"]

```

**增加陣列物件資料**

``` JavaScript
let data = [];
add("洧杰","男生"); 
add("葉子","女生"); 

// output 
//[
// {name:"洧杰",sex:"男生"},
// {name:"葉子",sex:"女生"}
//]

```
**取物件資料** 
``` JavaScript
const bmiStatesData = {
  "overThin": {
    "state": "過輕",
    "color": "藍色"
  },
  "normal": {
    "state": "正常",
    "color": "紅色"
  }
}
checkBmiStates("overThin"); //你的體重過輕，指數為藍色
checkBmiStates("normal"); //你的體重正常，指數為紅色
```

## function 裡面的 return 介紹

``` =javascript
function power(num){
 console.log(num*num);
}
 let numNum = power(5);
```


## 週末任務

1. 張貼 kata YouTube 影片(15min內)，並提供 codepen 
2. 出一題 function input、output 題目，tag 上一位學生解題


## 第四關主線任務 BMI Kata

* <a href="https://rpg.hexschool.com/training/32/task?type=detail&id=315" target="_top">第四關主線任務</a>

達求職門檻工程師水準等級為 10 分鐘，每日練一遍當起手式，10/21 開始到 11/4 每天早上 9:05 發 discord 訊息，張貼自己的練功情況

```
此為 BMI kata 分享區，請在討論串 上分享：
1.你今天 BMI kata 練習第幾遍？
2.覺得學習過程中，哪些細節可以優化？
3.下次練習，你想刻意練習哪些內容？
```


> [洧杰練 Vim 範例](https://www.youtube.com/watch?v=eRLAKhi-6HE&list=PL3TsqJC8EmwTSlkFE7Zu-Bt6HqDG1fH_U)
