---
# System prepended metadata

title: "\U0001F3C5 Day 11 - 函式觀念一、二"
tags: [JS 直播班 - 2025 秋季班]

---

# 🏅 Day 11 - 函式觀念一、二

依照下方教學練習，並回答問題。
以下題目請合併為一份 CodePen 繳交，並透過「註解」進行回答。

### 觀念一：基本函式寫法教學 

可參考課程影音「函式 function - 函式寫法教學」章節

1. 宣告、命名函式
```javascript=
// 在此 morningAction 是自定義的名稱
function morningAction() {
  // 定義函式執行內容
  console.log("刷牙");
  console.log("洗臉");
} 
```
2. 呼叫函式
```javascript=
morningAction();
morningAction();
```
> 1. 函式撰寫完後，需要呼叫才會執行
> 2. 函式可以重複呼叫


### 觀念二：函式裡面仍可以執行函式 

可參考課程影音「函式 function - 函式裡面仍可以執行函式」章節

```javascript=
function dailyAction() {
  cleanHead();
  console.log("出門");
  console.log("回家");
  cleanHead();
} 
function cleanHead() {
  console.log("刷牙");
  console.log("洗臉");
} 
dailyAction();
```
> 函式內部可以呼叫其他函式，
> 可以重複利用程式碼、簡潔版面。

問題一
---
1. 宣告一個函式，讓此函式執行後會印出字串 `"這是一個函式"`
2. 觀看下方程式碼，最後會印出什麼
```javascript=
function sayHello() {
  console.log("ㄋ好");
}
console.log("Bye！");
```
3. 觀看下方程式碼，選出正確敘述
```javascript=
function sayHi() {
  console.log("Hi");
}
sayHi();
sayHi();

/* 選項 
   1. 函式不能重複呼叫，會報錯
   2. 最後會印出兩個 Hi
   3. 只會執行一次，印出一個 Hi
*/
```


問題二
---
1. 觀看以下程式碼，利用函式觀念二，嘗試優化 `todayTask()` 函式
```javascript=
function todayTask() {
  console.log("觀看課程");
  console.log("製作筆記");
  console.log("每日任務");
  console.log("觀看課程");
  console.log("製作筆記");
  console.log("主線任務");
  console.log("觀看課程");
  console.log("製作筆記");
}
function watchAndNote() {
  console.log("觀看課程");
  console.log("製作筆記");
}
```
2. 觀看以下程式碼，最後會印出什麼
```javascript=
function printNumbers() {
  printOne();
  console.log("11");
  printOne();
}
function printOne() {
  console.log("1");
}
printOne();
```


<!-- 解答：  
問題一
1. 函式名稱可以隨意命名，盡量與執行內容相符即可
```
function printString() {
  console.log("這是一個函式");
}
printString();  // 記得呼叫才會執行
```

2. Bye！
3. 選項 2


問題二
1. 
```
function todayTask() {
  watchAndNote();
  console.log("每日任務");
  watchAndNote();
  console.log("主線任務");
  watchAndNote();
}
function watchAndNote() {
  console.log("觀看課程");
  console.log("製作筆記");
}
```

2. 1
   （原因：printNumbers() 沒有呼叫！）
-->