--- 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)); ``` > 助教回覆: