---
# System prepended metadata

title: 函式 function
tags: [' function', 函式]

---

---
title: 函式 function
tags: 函式, function,
description:
---
函式 function
===

#### 函式的寫法
開頭為function，函式名稱``functionName``，小括號是**帶入參數**用，大括號是函式要**執行的內容**。

```javascript=
function functionName() {
    
};
```
<br>

#### 註冊多組函式流程
```javascript=
// 先定義兩組函式
function morningAction() {
    console.log('起床');
    console.log('刷牙');
    console.log('洗臉');
    console.log('出門');
};

function nightAction() {
    console.log('回家');
    console.log('刷牙');
    console.log('洗臉');
    console.log('睡覺');
};
// 再執行兩組函式
morningAction();
nightAction();

// 起床、刷牙、洗臉、出門、回家、刷牙、洗臉、睡覺
```
<br>

#### 函式裡面還可以執行函式

由上面例子的函式``morningAction()`` ``nightAction()``
裡面都有相同的行為**刷牙**、**洗臉**，把這兩個行為再獨立出一個函式``cleanHead``，放在``morningAction()`` ``nightAction()``內方便管理、精簡程式碼。
```javascript=
function morningAction() {
    console.log('起床');
    cleanHead();
    console.log('出門');
};

function nightAction() {
    console.log('回家');
    cleanHead();
    console.log('睡覺');
};
function cleanHead() {
  console.log('刷牙');
  console.log('洗臉');
}
morningAction();
nightAction();

// 起床、刷牙、洗臉、出門、回家、刷牙、洗臉、睡覺
```

#### 函式參數介紹
- 函式代入的參數，若有多個，參數與參數之間用``逗號,``隔開。
- 函式代入的參數==只存在大括號內==。
    ```javascript=
    function test(num) {
      console.log(num);
    };
    console.log(num);    // 這邊取不到函式參數num
    ```
- 透過參數帶入兩個數字做加總
    ```javascript=
    function addNumber(num1, num2) {
      console.log(`兩個數字加總為${num1 + num2}`);
    }
    addNumber(120, 300);    // 兩個數字加總為420
    ```
