国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

ES6 箭頭函數(arrow function)

Arno / 1904人閱讀

摘要:因為箭頭函數沒有構造方法。因為不能一個箭頭函數,所以也沒必要有了。的值在這個箭頭函數的整個生命周期里面都不變。你必須通過命名參數和剩余參數去獲取箭頭函數的參數。非箭頭函數在非嚴格模式下面可以有重名參數。

例行聲明:接下來的文字內容全部來自 Understanding ECMAScript 6,作者是Nicholas C.Zakas,也就是大名鼎鼎的Professional JavaScript for Web Developers(《JavaScript高級程序設計》)的作者。我很喜歡他的寫作風格,所以在看了Understanding ECMAScript 6后試著自己寫篇博客梳理一下,相當于簡單地翻譯和鞏固一下吧。在此特別感謝Nicholas的原創,我只是一個小矮人,站在巨人的肩膀上,所以看到了原本看不到的風景。
原文鏈接:https://leanpub.com/understan...

1: 什么是箭頭函數?
箭頭函數,顧名思義就是用箭頭(=>來定義的函數,不會用到關鍵字‘function’),例如:

let sum = (a, b)=> {return a + b;}

效果等同于:

var sum = function(a, b){return a + b;} 

但是,事實上上面兩個function存在很多不同,會在之后的第三點講解。

2: 箭頭函數的多種定義方式
箭頭函數的定義形式有很多種(這也是我不喜歡的一點,呵呵),具體的有:

1: 什么情況下都可以型

let sum = (a, b)=>{return a + b;}

這種是最常用,最通用的形式。

2: 只有一個參數型

let self = num1 => {return num1;}

可以看到相對第一種定義的區別是:沒有用()包圍參數. 這種形式只可以在這種情況下用。

3: 沒有參數型

let functionA = ()=> {return "hehe";}

當沒有參數時,必須要有"()"。

4: 兩個參數及其以上型

let sum = (a, b) => {return a + b;}

當有兩個及其以上的參數時,也必須要用‘()’把參數括起來。

5:沒有return&&沒有{}

let sum = (a, b) => a + b;

你可以同時不給return關鍵字和{},效果`等同`于上面的第4種情況

6: 沒有return && 有{}

let sum = (a, b)=> {a + b;}

這種情況不等于第5種,這種情況下`"a+b"`并不會作為這個函數的返回值,如果你調用這個函數,得到的結果`‘undefined’`

7: 有return && 沒有{}

let sum = (a, b)=> return a + b;

不要作死,這種寫法直接給你一個syntaxError.

注明,以上的第5,6,7點針對的是函數方法體的部分,不論函數參數是幾個,結果沒有區別;同樣的,第2,3,4點針對的是函數的參數部分,不論函數的方法體怎么寫,對結果沒有影響。

3: 箭頭函數和一般的非箭頭函數的區別:

1: 沒有this, super, arguments和new.target綁定。一個箭頭函數里面的這幾個指由包含它的最近的非箭頭函數決定
2: 不能使用new來調用。因為箭頭函數沒有構造方法。
3: 沒有[prototype]屬性。因為不能new一個箭頭函數,所以prototype也沒必要有了。
4: 不能改變this的值。this的值在這個箭頭函數的整個生命周期里面都不變。
5: 沒有arguments。你必須通過命名參數和剩余參數去獲取箭頭函數的參數。
6: 不能有重名參數。非箭頭函數在非嚴格模式下面可以有重名參數。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/81595.html

相關文章

  • 探索ES2015:箭頭函數Arrow Functions)

    摘要:注意箭頭函數有幾個使用注意點不可以使用對象,該對象在函數體內不存在。不可以當作構造函數,也就是說,不可以使用命令,否則會拋出一個錯誤。不可以使用命令,因此箭頭函數不能用作函數。 前言 在JavaScript的世界中函數被譽為一等公民,每當我們需要在JS定義一個新的函數,我們都會毫不猶豫的function() {},也許我們可以開始換一種方式來定義一個函數,也就是本文的主角箭頭函數,一個...

    pkwenda 評論0 收藏0
  • es6基礎0x024:babel簡單使用

    摘要:簡單的說就是,新語法編譯器舊語法。說明所以,對于新特性,我們可以通過使用,也可以通過語法轉化來達到兼容。 0x001 polyfill 我們都知道,js總是一直存在著兼容性問題,雖然其他語言也存在著兼容性問題,比如c++、java,但那種兼容性是新特性在舊版本上的不兼容,js則存在著各種奇形怪哉的不兼容。這其中有著非常復雜的歷史和時代的原因,并不加以累述。而解決兼容性問題的方法在以前只...

    wangbinke 評論0 收藏0
  • JavaScript 的 this 指向問題深度解析

    摘要:而改變了這種狀態,雖然定義的類用運算符得到的仍然是,但它不能像普通函數一樣直接調用同時,中定義的方法函數,也不能當作構造函數用來調用。而在中,用調用一個構造函數,會創建一個新對象,而其中的就指向這個新對象。 JavaScript 中的 this 指向問題有很多博客在解釋,仍然有很多人問。上周我們的開發團隊連續兩個人遇到相關問題,所以我不得不將關于前端構建技術的交流會延長了半個時候討論 ...

    liuchengxu 評論0 收藏0
  • ES6學習筆記之箭頭函數

    摘要:特性介紹箭頭函數是新增的特性之一,它為這門語言提供了一種全新的書寫函數的語法。用生成的函數會定義一個自己的,而箭頭函數沒有自己的,而是會和上一層的作用域共享。 本文同步自我得博客:http://www.joeray61.com JS中的箭頭 箭頭在JS里并不算是個新鮮的玩意兒,一直以來,JS都支持-->這樣的箭頭。 很早的時候有些瀏覽器還不支持JS,當時的人們為了兼容這些瀏覽器,需要這...

    Vultr 評論0 收藏0
  • es6基礎0x001:箭頭函數

    摘要:這就是所謂的箭頭函數不綁定,而在我看來,回調函數就是箭頭函數最好的歸宿。 0x000 概述 箭頭函數有兩個作用: 更簡短的寫法 不綁定this 0x001 語法一表覽 ()=>{} ()=>{console.log(arrow);return null} ()=>hello (num1, num2)=>num1+num2 num=>++num ()=>({name:arrow})...

    stonezhu 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<