箭頭函式(arrow function)


Posted by hoyi-23 on 2021-05-10

什麼是箭頭函式?它的優點?

簡單來說,箭頭函式的優點就是能讓程式碼更為精簡!
是ES6的新功能。

箭頭函式與一般函式的不同

  1. 箭頭函示沒有 arguments參數。
    arguments會將我們傳入的參數全部以陣列的方式列出來,它並不是一般的陣列而是類陣列!
    //一般函式
    const num=function(){
    console.log(arguments);
    }
    num(1,2,3,4,5,6); // Augrments(6)[1,2,3,4,5,6]
    
    若換成箭頭函式,console.log會出錯 //arguments is not defined
    若需要取出參數,可以使用其餘參數的方法 ...arg
    //一般函式
    const num=(...arg)=>{
    console.log(arg);
    }
    num(1,2,3,4,5,6); // (6)[1,2,3,4,5,6]
    
  2. this 的綁定,一般函式與箭頭函式this指向不同
    箭頭函示沒有自己的this,會自動套用外層的this
    箭頭函式的this會依據函式在哪裡建立而決定,而非與一般函式一樣,依照執行時被呼叫的地方決定。
    *關於this只後再寫一篇*
    
    3.箭頭函式無法當成建構函式使用
    *關於建構函式只後再寫一篇+

箭頭函式的寫法

//此為一般函式表達式
const greet=function(someone){
return someone + '你好';
}
console.log(greet('Tom')); //Tom 您好

步驟一: 將function去除,並於參數右邊加上 =>

//此為一般函式表達式
const greet=(someone)=>{
return someone + '你好';
}
console.log(greet('Tom')); //Tom 您好

步驟二: 若程式碼內容為表達式時,可以去掉{}與return
表達式的意思是程式碼的內容為回傳一個質

//此為一般函式表達式
const greet=(someone)=>someone + '你好';
console.log(greet('Tom')); //Tom 您好

步驟二: 若只有一個參數,可將參數的()去掉
若沒有參數,需保有空括號();若有一個以上的參數,有需有括號

//此為一般函式表達式
const greet=someone=>someone + '你好';
console.log(greet('Tom')); //Tom 您好

#箭頭函式







Related Posts

week12 HW 留言板

week12 HW 留言板

Nuxt(1) - SEO設定 & router

Nuxt(1) - SEO設定 & router

Day 4 - 陣列 filter,map,sort,reduce,from

Day 4 - 陣列 filter,map,sort,reduce,from


Comments