箭頭函數(shù)-ES6初學(xué)習(xí)

箭頭函數(shù),就是對(duì)函數(shù)進(jìn)行簡化操作,基本寫法

=>

=> 就是當(dāng)你只需要一個(gè)只有一個(gè)參數(shù)的簡單函數(shù)時(shí),可以使用新標(biāo)準(zhǔn)中的箭頭函數(shù),它的語法非常簡單:標(biāo)識(shí)符=>表達(dá)式。你無需輸入function和return,一些小括號(hào)、大括號(hào)以及分號(hào)也可以省略。

function show(x){           
    console.log(x)          
};                
show(4);            
var fun = y => y;      
console.log(fun(5));    

() 多參數(shù)的處理

如果要寫一個(gè)接受多重參數(shù)(也可能沒有參數(shù),或者是不定參數(shù)、默認(rèn)參數(shù)、參數(shù)解構(gòu))的函數(shù),你需要用小括號(hào)包裹參數(shù) list
一個(gè)參數(shù)的情況下你可以不用小括號(hào) var fun = y => y; 這樣直接寫,兩個(gè)參數(shù)或者有更多的參數(shù)的時(shí)候就必要用小括號(hào)把參數(shù)包裹進(jìn)去。

var fun = (x,y)=> x+y;       
console.log(fun(7,9));           

{} 函數(shù)體多內(nèi)容的處理

復(fù)雜一些就好比這樣

var fun = (x,y)=>{       
    x=x*y;      
    y=y*x;    
    return x+y;       
};      
console.log(fun(7,9));       


這時(shí)我們需要把復(fù)雜的計(jì)算過程寫到大括號(hào)里,如果不寫大括號(hào)就意味著直接就是寫入 return 了,所以需要寫入到大括號(hào)里。

回調(diào)寫法

回調(diào)函數(shù),匿名函數(shù)也是可以用箭頭函數(shù)來寫的。

setTimeout(()=>{      
    console.log(123);      
},1000);         


怎么說呢,箭頭函數(shù)也可以這樣理解就是把函數(shù)中的 function 給省略了。

注意點(diǎn)

箭頭函數(shù)我們還需要注意一些細(xì)節(jié)。

this 指向的問題

在函數(shù)中 this 指向是很容易搞混淆的。我們?cè)谧雒嫦驅(qū)ο?,事件的時(shí)候,會(huì)弄混的。這個(gè) this 指向的問題我單獨(dú)開一個(gè)新的文章來寫。

不可以當(dāng)做構(gòu)造函數(shù)

這里有這樣的一個(gè)構(gòu)造函數(shù)

var  A = function(){          
    this.a=10;          
};          
var A1 = new A();          
console.log(A1.a);     


這是一個(gè)簡單的構(gòu)造函數(shù),這時(shí)候如果用 => 來代替了 function 以后會(huì)出現(xiàn)什么情況

var  A = () =>{          
    this.a=10;          
};          
var A1 = new A();          
console.log(A1.a);      


可以看出箭頭函數(shù)是不可以做構(gòu)造函數(shù)的。

不可以使用 arguments

形式參數(shù) arguments 是不能在箭頭函數(shù)中使用的

var fun = function(){           
    console.log(arguments[4]+arguments[3]);           
};           
fun(1,2,3,4,5);           


但是如果用 箭頭函數(shù)就會(huì)報(bào)錯(cuò)

var fun = ()=>{           
    console.log(arguments[4]+arguments[3]);           
};           
fun(1,2,3,4,5);    


Uncaught ReferenceError: arguments is not defined 說沒有找到,沒有定義。

不可以用在 Generator 函數(shù)中。

Generator 這個(gè)函數(shù)就是生成器,是為了解決異步操作。這個(gè)點(diǎn)也是比較多,我們單獨(dú)寫一個(gè)博客。
以上的四點(diǎn)是需要注意的地方。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 函數(shù)參數(shù)的默認(rèn)值 基本用法 在ES6之前,不能直接為函數(shù)的參數(shù)指定默認(rèn)值,只能采用變通的方法。 上面代碼檢查函數(shù)l...
    呼呼哥閱讀 3,703評(píng)論 0 1
  • 1.函數(shù)參數(shù)的默認(rèn)值 (1).基本用法 在ES6之前,不能直接為函數(shù)的參數(shù)指定默認(rèn)值,只能采用變通的方法。
    趙然228閱讀 830評(píng)論 0 0
  • 在此處先列下本篇文章的主要內(nèi)容 簡介 next方法的參數(shù) for...of循環(huán) Generator.prototy...
    醉生夢(mèng)死閱讀 1,486評(píng)論 3 8
  • 之前也讀過關(guān)于溝通的書籍,但是總覺得那類書籍其實(shí)只能歸類于成功學(xué),因?yàn)橥ㄆ榻B了一些要怎么怎么樣,比如要學(xué)會(huì)傾聽...
    楊文強(qiáng)Kpaladin閱讀 18,534評(píng)論 2 11
  • 每次聽到同事的鈴聲 總覺得感同身受 每次想你我都會(huì)心動(dòng)我的思念轉(zhuǎn)過寂靜的天空 然后今天剛?cè)ゲ榱艘幌逻@首歌 原來她唱...
    可我是九月閱讀 279評(píng)論 0 0

友情鏈接更多精彩內(nèi)容