不信你不會ES6箭頭函數(shù)

? ? ? ? 當你還是ES6或React初學者的時候,可能你會有這樣的困惑孽尽?看到代碼中出現(xiàn)各式各樣的箭頭符號珠增,和其附帶的時有時無的圓括號和花括號就會暈圈。我相信你可能見過如下這些類型的箭頭函數(shù)酷勺,你是否完全掌握和理解它們的寫法要領(lǐng)和區(qū)別呢。

? ? ? ? () => { statements }

? ? ?(parameter) => { statement }

? ? ? ? parameter => { statement }

? ? ? ? parameter => statement

? ? ? ? (param1, param2, ...) => { statements }

? ? ? ? (param1, param2, ...) => statement

? ? ? ? 本文就來說一下ES6中這個靈活多變的箭頭函數(shù)扳躬。

? ? 首先,對比一下ES5和ES6函數(shù)的寫法甚亭。

? ? ES5:

? ? ? ? const name = function(parameters) { statements }

? ? ES6(標準箭頭函數(shù)形式):

? ? ? ? const name = (parameters) => { statements }

? ? 以上這種標準的箭頭函數(shù)形式是我們常見的贷币,下面我們來講幾種常見的簡化模式。

1. 無參數(shù)模式亏狰;

? ? ? ? () => { statements }

? ? ? ? 這樣的箭頭函數(shù)直接返回statement的內(nèi)容役纹。

2. 單變量模式;

? ? ? (parameter)=> { statement }

? ? ? ? 如果你的函數(shù)是單一變量的暇唾,上面這種寫法是常見的標準形式促脉。

? ? ? ? 但在ES6中,允許其去掉變量的圓括號策州,如下:

? ? ? ? parameter => { statement }

? ? ? ? 請注意瘸味,只有單一變量時,可以去掉圓括號够挂,無或多參數(shù)都需要保留圓括號旁仿。

? ? ? ? 舉個栗子:

? ? ? ? const double = (a) => { return a * 2 }

? ? ? ? // 等效于下面去掉的寫法

? ? ? ? const double = a => { a * 2; }

3. 多變量模式;

? ? ? ? (param1, param2, ...) => { statements }

? ? ? ? 注意孽糖,如果你的函數(shù)有2+個變量枯冈,這是變量前后的圓括號是必須的。

? ? ? ? 再舉個栗子:

? ? ? ? ? ? const sum = (a, b, c) => { return a + b +c; }? ? (正確寫法)

? ? ? ? ? ? const sum = a, b, c => { return a + b +c; }? ? ? (錯誤寫法)

4. 關(guān)于箭頭函數(shù)的返回值

? ? ? ? 箭頭函數(shù)還自帶了一個簡化的語法形式办悟,容易被人忽視尘奏。這就是如果返回值只有一行代碼時,可以去掉花括號病蛉。第三顆栗子如下:

? ? ? ? const double = (a) =>{ return a * 2; }

? ? ? ? // 上面的代碼可以簡寫如下

? ? ? ? const double = a => a * 2;


總結(jié):?

? ? ? ? 箭頭函數(shù)作為ES6重要的特性給我們帶來了很多簡化代碼的方便特性炫加,但是因為其靈活多變的語法特點也給我們帶來了一些理解和使用上的疑惑。在使用和閱讀代碼時我們應(yīng)該注意到變量的個數(shù)和返回值的代碼行數(shù)铡恕,以免造成困惑和錯誤琢感。


小練習(簡化以下代碼):

1. const sum = function(a, b, c) { return a + b + c;}

2. const square = function(d) { return d ** 2 }

3. const sayHi = function() { console.log('Hi'); }

.

.

.

.

.

.

參考答案:

1. const sum = ( a, b, c ) => a + b + c;

2. const square = d => d ** 2;

3. const sayHi = () => { console.log('Hi'); }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末探熔,一起剝皮案震驚了整個濱河市驹针,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌诀艰,老刑警劉巖柬甥,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件饮六,死亡現(xiàn)場離奇詭異,居然都是意外死亡苛蒲,警方通過查閱死者的電腦和手機卤橄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來臂外,“玉大人窟扑,你說我怎么就攤上這事÷┙。” “怎么了嚎货?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蔫浆。 經(jīng)常有香客問我殖属,道長,這世上最難降的妖魔是什么瓦盛? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任洗显,我火速辦了婚禮,結(jié)果婚禮上原环,老公的妹妹穿的比我還像新娘挠唆。我一直安慰自己,他們只是感情好扮念,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布损搬。 她就那樣靜靜地躺著,像睡著了一般柜与。 火紅的嫁衣襯著肌膚如雪巧勤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天弄匕,我揣著相機與錄音颅悉,去河邊找鬼。 笑死迁匠,一個胖子當著我的面吹牛剩瓶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播城丧,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼延曙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了亡哄?” 一聲冷哼從身側(cè)響起枝缔,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后愿卸,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體灵临,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年趴荸,在試婚紗的時候發(fā)現(xiàn)自己被綠了儒溉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡发钝,死狀恐怖顿涣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情酝豪,我是刑警寧澤园骆,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站寓调,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏锄码。R本人自食惡果不足惜夺英,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望滋捶。 院中可真熱鬧痛悯,春花似錦、人聲如沸重窟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽巡扇。三九已至扭仁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間厅翔,已是汗流浹背乖坠。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留刀闷,地道東北人熊泵。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像甸昏,于是被迫代替她去往敵國和親顽分。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容