---
# System prepended metadata

title: 【Day12】函數function
tags: [JavaScript, 14th鐵人賽]

---

# 【Day12】函數function
###### tags: `JavaScript` `14th鐵人賽`
本篇內容包含：

- 函數function如何使用
- 參數
- return
---

## 函數

當我們面臨的問題越來越複雜時，程式也會變得複雜，但是有一種簡單的方式就是function，他可以將多行的代碼打包在一起，並在需要時可以重複使用他們。

函數須具備的三個條件：

1. 函式的名稱、匿名函式
2. `( )`小括號中稱為參數，參數間使用`,`分開
3. `{ }`大括號中重賦執行的內容，函式功能的主要區塊

透過一個簡單的函式做介紹：

我下午待辦事項 寫作業→遛狗→買牛奶→去書店

```jsx
function afternoonToDo(){ //函式宣告
	console.log("寫作業"); // 函式執行的動作
	console.log("遛狗");
	console.log("買牛奶");
	console.log("去書店");
}
afternoonToDo(); // 執行{ }大括號中的函式
```

### 加上參數

```jsx
function reverseString(str){
  console.log( str.split("").reverse().join("")); //參數str加上三個語法
}
reverseString("把我倒過來") // 來過倒我把

// .split("")字串分割成字符串數組 (字串轉陣列)
// .reverse()反轉陣列
// .join("")把數組中的所有元素放入一個字符串(陣列合併字串)
```

### 兩個參數

參數中間需使用,分開

```jsx
function isNum(num1,num2){
	console.log(num1)
	console.log(num2)
}
isNum(2,3)
/*
2
3
*/
```

在以上範例function中都是使用console.log打印出結果，若需重複使用時則可使用return與宣告變數。

## return回傳語句

return常用在把函數中的內容往外傳並為他宣告一個變數

```jsx
//買午餐的計算機

function buy(foodMoney,drinkMoney){
	return foodMoney + drinkMoney; // 將資料回傳
}

let dogTotalBuy = buy(50,25); // 宣告一個變數dogTotalBuy(小狗總共買)加上參數
let catTotalBuy = buy(80,10);

console.log(`今天午餐花了${dogTotalBuy}元`); //將dogtotalBuy加上字串打印出來
```

如果覺得return內容好長一串可以在其中加入變數

```jsx
// 更改return寫法

function buy(foodMoney,drinkMoney){
	let totalMoney = foodMoney + drinkMoney // 新增一個let 變數命名為totalMoney
	return totalMoney; // 將資料回傳
}
```

複習一下區域與全域變數：此時若在外想在函式外打印出`totalMoney`時會發現錯誤，是因為`let`只供函數區塊內作用

### 多個return

當多個`return`出現時，將會於第一個`return`便中斷函式執行

```jsx
function str(){
	return("第一串文字");
	return("第二串文字輪不到我嗚嗚嗚");
}
str(); // 第一串文字
```

最近發現真的有人在看我的文章，還看到很多錯字今天有認真檢查了一下哈哈哈d(･∀･ˋ)b，也謝謝大家糾正~若有任何問題或補充歡迎留言唷感謝~