亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

ES6 箭頭函數(shù)(arrow function)

Arno / 1959人閱讀

摘要:因?yàn)榧^函數(shù)沒有構(gòu)造方法。因?yàn)椴荒芤粋€(gè)箭頭函數(shù),所以也沒必要有了。的值在這個(gè)箭頭函數(shù)的整個(gè)生命周期里面都不變。你必須通過命名參數(shù)和剩余參數(shù)去獲取箭頭函數(shù)的參數(shù)。非箭頭函數(shù)在非嚴(yán)格模式下面可以有重名參數(shù)。

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

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

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

效果等同于:

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

但是,事實(shí)上上面兩個(gè)function存在很多不同,會(huì)在之后的第三點(diǎn)講解。

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

1: 什么情況下都可以型

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

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

2: 只有一個(gè)參數(shù)型

let self = num1 => {return num1;}

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

3: 沒有參數(shù)型

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

當(dāng)沒有參數(shù)時(shí),必須要有"()"。

4: 兩個(gè)參數(shù)及其以上型

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

當(dāng)有兩個(gè)及其以上的參數(shù)時(shí),也必須要用‘()’把參數(shù)括起來。

5:沒有return&&沒有{}

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

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

6: 沒有return && 有{}

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

這種情況不等于第5種,這種情況下`"a+b"`并不會(huì)作為這個(gè)函數(shù)的返回值,如果你調(diào)用這個(gè)函數(shù),得到的結(jié)果`‘undefined’`

7: 有return && 沒有{}

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

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

注明,以上的第5,6,7點(diǎn)針對(duì)的是函數(shù)方法體的部分,不論函數(shù)參數(shù)是幾個(gè),結(jié)果沒有區(qū)別;同樣的,第2,3,4點(diǎn)針對(duì)的是函數(shù)的參數(shù)部分,不論函數(shù)的方法體怎么寫,對(duì)結(jié)果沒有影響。

3: 箭頭函數(shù)和一般的非箭頭函數(shù)的區(qū)別:

1: 沒有this, super, arguments和new.target綁定。一個(gè)箭頭函數(shù)里面的這幾個(gè)指由包含它的最近的非箭頭函數(shù)決定
2: 不能使用new來調(diào)用。因?yàn)榧^函數(shù)沒有構(gòu)造方法。
3: 沒有[prototype]屬性。因?yàn)椴荒躰ew一個(gè)箭頭函數(shù),所以prototype也沒必要有了。
4: 不能改變this的值。this的值在這個(gè)箭頭函數(shù)的整個(gè)生命周期里面都不變。
5: 沒有arguments。你必須通過命名參數(shù)和剩余參數(shù)去獲取箭頭函數(shù)的參數(shù)。
6: 不能有重名參數(shù)。非箭頭函數(shù)在非嚴(yán)格模式下面可以有重名參數(shù)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/81595.html

相關(guān)文章

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

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

    pkwenda 評(píng)論0 收藏0
  • es6基礎(chǔ)0x024:babel簡單使用

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

    wangbinke 評(píng)論0 收藏0
  • JavaScript 的 this 指向問題深度解析

    摘要:而改變了這種狀態(tài),雖然定義的類用運(yùn)算符得到的仍然是,但它不能像普通函數(shù)一樣直接調(diào)用同時(shí),中定義的方法函數(shù),也不能當(dāng)作構(gòu)造函數(shù)用來調(diào)用。而在中,用調(diào)用一個(gè)構(gòu)造函數(shù),會(huì)創(chuàng)建一個(gè)新對(duì)象,而其中的就指向這個(gè)新對(duì)象。 JavaScript 中的 this 指向問題有很多博客在解釋,仍然有很多人問。上周我們的開發(fā)團(tuán)隊(duì)連續(xù)兩個(gè)人遇到相關(guān)問題,所以我不得不將關(guān)于前端構(gòu)建技術(shù)的交流會(huì)延長了半個(gè)時(shí)候討論 ...

    liuchengxu 評(píng)論0 收藏0
  • ES6學(xué)習(xí)筆記之箭頭函數(shù)

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

    Vultr 評(píng)論0 收藏0
  • es6基礎(chǔ)0x001:箭頭函數(shù)

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

    stonezhu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<