---
# System prepended metadata

title: 設計魔劍三組
tags: [JavaScript 實戰班, ' Day12']

---

---
tags: JavaScript 實戰班, Day12
---


# 設計魔劍三組

## 6/23：Day 12
透過 Let, Const 穩定自己的思緒後，小明開始體驗更為強力的 ES6 JS 語法，小美提到可以試著將複雜的 JavaScript 函式透過箭頭的方式進行簡化。

小明：什麼！箭頭也能當函式？
小美：沒錯，正確的運用下可以省略相當多的符號，將其濃縮成一行
小美：箭頭函式的運用技巧如下：
```js
 // 傳統函式
function saySomething(string) {
  return '接招 ' + string; 
}

// 轉成箭頭函式
const saySomething = (string) => {
  return '接招 ' + string;
}

// 當只有單行表達式時，可同時省略 return 及 {}
// 省略後依然保有回傳的特質
const saySomething = (string) => '接招 ' + string;
console.log(saySomething('Go Go Power Ranger'));

// 當只有單一個參數時，可以省略參數外部的 ()
// 沒有參數、兩個以上都不能省略
const saySomething = string => '接招 ' + string;
console.log(saySomething('Go Go Power Ranger'));
```
> 箭頭函式也可參考課程提供的[影音教學](https://courses.hexschool.com/courses/670037/lectures/12364949)

任務：將以下的函式簡化（不影響結果的情況下進行最大簡化）

```js
// 題目：1
function sum(a, b) {
  var c = a + b;
  return c;
}
console.log(sum(5, 6));

// 題目：2
function square(num) {
  return num * num;
}1
var d = square(5);
console.log(d);

// 題目：3
setTimeout(function() {
  console.log('延遲 10 毫秒');
}, 10);

// 題目：4
var arr = [1, 2, 3];
var arr2 = arr.map(function(item, i) {
  return item * 2;
});
console.log(arr2);

// 題目：5
var obj = {
  fn: function fn2(a) {
    return a * a;
  }
}
console.log(obj.fn(10));
```
---
### Ryan
```javascript=
// 題目：1
// function sum(a, b) {
//   var c = a + b;
//   return c;
// }
// console.log(sum(5, 6));

//A:
let sum = (a, b) => a + b;
console.log(sum(5, 6));


// 題目：2
// function square(num) {
//   return num * num;
// }
// var d = square(5);
// console.log(d);

//A:
let square = (num) => num * num;
console.log(square(5));


// 題目：3
// setTimeout(function() {
//   console.log('延遲 10 毫秒');
// }, 10);

//A:
setTimeout(()=> console.log('延遲 10 毫秒'), 10);


// 題目：4
// var arr = [1, 2, 3];
// var arr2 = arr.map(function(item, i) {
//   return item * 2;
// });
// console.log(arr2);

//A:
let arr = [1, 2, 3];
let arr2 = arr.map(item => item * 2);
console.log(arr2);


// 題目：5
// var obj = {
//   fn: function fn2(a) {
//     return a * a;
//   }
// }
// console.log(obj.fn(10));

//A:
let obj ={
    fn: a => a * a,
}
console.log(obj.fn(10));

```
> 助教回覆：作業做的很好哦，簡化的都很正確喔 :+1:

---
### Jerry
```javascript=
// 題目：1
const sum = (a,b) => a + b;
console.log(sum(5, 6));


// 題目：2
const square = num => num * num;
var d = square(5);
console.log(d);


// 題目：3
setTimeout(()=> console.log('延遲 10 毫秒') , 10);


// 題目：4
var arr = [1, 2, 3];
var arr2 = arr.map(item => item * 2)
console.log(arr2);


// 題目：5
var obj = {
  fn: a => a * a ,
}
console.log(obj.fn(10));

```
> 助教回覆：作業做的很好哦，簡化的都很正確喔 :+1:
> 

---
### Vivian Chiang
```javascript=
// 題目：1
const sum = (a, b) => a + b;
console.log(sum(5, 6));

// 題目：2
const square = num => num * num;
let d = square(5);
console.log(d);

// 題目：3
setTimeout(() => console.log('延遲 10 毫秒'), 10);

// 題目：4
let arr = [1, 2, 3];
const arr2 = arr.map(item => item * 2);
console.log(arr2);

// 題目：5
const obj = {
  fn: a => a * a,
}
console.log(obj.fn(10));
```
> 助教回覆：作業做的很好哦，簡化的都很正確喔 :+1:
> 


---

### Yoyo

```javascript=
// 1
const sum = (a, b)=> c = a + b;

console.log(sum(5, 6));

// 2
const square = (num) => num * num;
let d = square(5);

console.log(d);

// 3
setTimeout(()=> {
  console.log('延遲 10 毫秒');
}, 10);

// 4
var arr = [1, 2, 3];
var arr2 = arr.map((item, i)=> item * 2);

console.log(arr2);

// 5
var obj = {fn:  (a) => a * a}

console.log(obj.fn(10));
```

> 助教回覆：