深入淺出ES6教程『箭頭函數(shù)』

?? 個人主頁歡迎訪問 ??


大家好,本人名叫蘇日儷格,大家叫我 (格格) 就好,在上一章節(jié)中我們學到了字符串模板的用法,下面我們一起來繼續(xù)學習箭頭函數(shù):

在箭頭函數(shù)之前,需要看一個例子:

function show(a=1){
    let a = 2;
    console.log(a); // Identifier 'a' has already been declared
}
show();

上面的代碼告訴我們函數(shù)的參數(shù)默認已經被定義了,一經聲明,就不能再用let或者const進行聲明了,只能用var;這個有點跑題了,算是送大家的一個小tip吧,下面讓我們一起來看箭頭函數(shù)吧:

//普通函數(shù)的寫法:
function show(){
    return 1;
}
show();
//上面的函數(shù)的箭頭函數(shù)寫法:
let show = () => 1;  // 箭頭的左邊是參數(shù)右邊是返回值
console.log(show());

如果要想在函數(shù)里面寫語句的時候,寫法是這樣的:

let show = (a=1,b=2) => {
    console.log(a,b);  // 1 2
}
show();

箭頭函數(shù)和普通函數(shù)除了寫法不同之外,還有三點不同,請看下面的例子:

let json = {
    name: '蘇日儷格',
    show: function(){
        setTimeout(function(){
            console.log(this.name); // 控制臺什么都沒有輸出
        },1000);
    }
}
json.show();

這個例子大多都是在vue等框架下開發(fā)遇到的問題,因為this指向的是當前的函數(shù),先要讓它指向外面的json對象,就還要在外面進行轉換,太麻煩,而箭頭函數(shù)則不同:

let json = {
    name: '蘇日儷格',
    show: function(){
        setTimeout(() => {
            console.log(this.name); // 蘇日儷格
        },1000);
    }
}
json.show();

綜上所述,第一個不同之處就是箭頭函數(shù)里的this指向的是定義函數(shù)所在的對象,而不是運行時所在的對象

小白:那第二個不同之處呢?
格格:第二個就是箭頭函數(shù)里面不能使用arguments,如果用了就是is not defined

解決辦法:就是...擴展運算符(在本章的第五小節(jié))

let show = (...a) => {
    console.log(a);  // [1, 2, 3, 4, 5]
};
show(1,2,3,4,5);

第三個就是箭頭函數(shù)不能當做構造函數(shù)來用

let Show = ()=>{
    this.name = '蘇日儷格';
}
let a = new Show();
console.log(a.name);    // Show is not a constructor

關于箭頭函數(shù)我們都已經了然于心,預知擴展運算符如何,請聽下回分解 (^?^)/~~~

本文的所有內容均是一字一句敲上去的,希望大家閱讀完本文可以有所收獲,因為能力有限,掌握的知識也是不夠全面,歡迎大家提出來一起分享!謝謝O(∩_∩)O~

歡迎來我的GitHub,喜歡的可以star,項目隨意fork,支持轉載但要下標注,同時恭候:我的博客 Resume

等一下( ?? .? ?? ),我還有最后一句話:
這里雖然沒有都市的繁華,
也沒有山林的鳥語花香,
只有一片如水的寧靜,
古人云:
既來之則安之,
既然來到了這里,
就可以靜心休憩你的靈魂,
調養(yǎng)你疲憊的心,
再見...
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 函數(shù)參數(shù)的默認值 基本用法 在ES6之前,不能直接為函數(shù)的參數(shù)指定默認值,只能采用變通的方法。 上面代碼檢查函數(shù)l...
    呼呼哥閱讀 3,703評論 0 1
  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,535評論 0 13
  • 30天的課程,陸陸續(xù)續(xù)畫了近兩個月,總算完成了自己的目標,很多時候沒有心情畫下去的時候,想到再堅持一下就好了,一下...
    穆楠一個閱讀 792評論 2 0
  • 有沒有一見鐘情,注定今生是她;有沒有魂牽夢縈,穿越遙遠的旅途,只為看一眼笑靨如花。 國慶節(jié)到了,說好了去看一看她。...
    chuanyu2015閱讀 320評論 0 0
  • 在我結婚前,與母親的關系可以用惡劣來形容?;楹螅故锹拈_始緩和了,雖然不能像我妹般什么都能與她分享,但起碼...
    大冰兒閱讀 394評論 0 1

友情鏈接更多精彩內容