1、箭頭函數(shù)簡(jiǎn)介
2、通常函數(shù)的定義方法用 => 來(lái)標(biāo)識(shí)
箭頭函數(shù)表達(dá)式的語(yǔ)法比函數(shù)表達(dá)式更簡(jiǎn)潔,并且沒(méi)有自己的this,arguments,super或 new.target。這些函數(shù)表達(dá)式更適用于那些本來(lái)需要匿名函數(shù)的地方,并且它們不能用作構(gòu)造函數(shù)。
var fn1 = function(a, b){ console.log(a + b); }; fn1(1, 2); // 3 function fn2(a, b){ console.log(a - b); } fn2(2, 1);//13、簡(jiǎn)寫(xiě)寫(xiě)法
對(duì)應(yīng)上面兩個(gè)
//刪掉了function var fn11 = (a, b)=>{ console.log(a+b); }; fn11(1, 2); // 3 //刪掉了function和函數(shù)名,無(wú)意義 (a,b)=>{ console.log(a-b) }4、基礎(chǔ)語(yǔ)法
附加規(guī)則
當(dāng)函數(shù)參數(shù)只有一個(gè)時(shí),可省略小括號(hào),但沒(méi)有時(shí),不能省略。
函數(shù)體(中括號(hào))中有且只有一行return語(yǔ)句時(shí),中括號(hào)和return關(guān)鍵字可以省略。
函數(shù)返回json對(duì)象,且只有一行return語(yǔ)句時(shí),返回的簡(jiǎn)寫(xiě)要加小括號(hào);如let add = a =>({"a":2})
(參數(shù)1, 參數(shù)2, …, 參數(shù)N) => { 函數(shù)聲明 } //相當(dāng)于:(參數(shù)1, 參數(shù)2, …, 參數(shù)N) =>{ return 表達(dá)式; } (參數(shù)1, 參數(shù)2, …, 參數(shù)N) => 表達(dá)式(單一) // 當(dāng)只有一個(gè)參數(shù)時(shí),圓括號(hào)是可選的: (單一參數(shù)) => {函數(shù)聲明} 單一參數(shù) => {函數(shù)聲明} // 沒(méi)有參數(shù)的函數(shù)應(yīng)該寫(xiě)成一對(duì)圓括號(hào)。 () => {函數(shù)聲明}
var add = function(a,b){ return a+b; }; // 即: var add = (a,b)=>{ return a+b }; // 即: var add = (a,b)=>a+b; --------------------------------------------------------------------------------------- var ret = function(a){ return a+1; }; // 即: var ret = a=>a+1; --------------------------------------------------------------------------------------- var non = function(){ return 2+1; }; // 即 var non = ()=>2+1;
函數(shù)體代碼多于一行 let fun1 = function(){ console.log("1"); console.log("2"); return 1+2; } fun1(); // 簡(jiǎn)寫(xiě)為 let fun2 = ()=>{ console.log("1"); console.log("2"); return 1+2 } fun2();
函數(shù)返回json對(duì)象時(shí) let f1 = function(){ return {"a":2}; } let f2 = ()=>{"a":2} // 錯(cuò)誤 let f2 = ()=>({"a":2}) 如果要返回一個(gè)對(duì)象,就要注意,如果是單表達(dá)式,這么寫(xiě)的話會(huì)報(bào)錯(cuò): x => { foo: x } 因?yàn)楹秃瘮?shù)體的{ ... }有語(yǔ)法沖突,所以要改為: // ok: x => ({ foo: x })
實(shí)例 let arr1 = [9,6,1,7]; let arr11 = arr1.sort( function(a,b){ return a-b; } ) console.log(arr11); let arr3= [2,3,9,5]; let arr33 = arr3.sort((a,b)=>a-b) console.log(arr33)5、總結(jié)
箭頭函數(shù)看上去是匿名函數(shù)的一種簡(jiǎn)寫(xiě),但實(shí)際上,箭頭函數(shù)和匿名函數(shù)有個(gè)明顯的區(qū)別:箭頭函數(shù)內(nèi)部的this是詞法作用域,由上下文確定。
箭頭函數(shù)寫(xiě)代碼擁有更加簡(jiǎn)潔的語(yǔ)法。
不會(huì)綁定this,或者說(shuō)箭頭函數(shù)中 不會(huì)改變this本來(lái)的綁定。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/104852.html
摘要:箭頭函數(shù)基本語(yǔ)法函數(shù)語(yǔ)法具名函數(shù)匿名函數(shù)三句話第一句話聲明第二句話聲明匿名函數(shù)第三句話把匿名函數(shù)賦值給箭頭函數(shù)語(yǔ)法特點(diǎn)只能做賦值,不能做聲明第一種寫(xiě)法完全寫(xiě)法不省略參數(shù)個(gè)數(shù),不省略函數(shù)體花括號(hào)參數(shù)個(gè)數(shù)函數(shù)體內(nèi)語(yǔ)句個(gè)數(shù)第二種寫(xiě)法省略參數(shù)括號(hào)參 1.箭頭函數(shù)基本語(yǔ)法 1.1 ES3 函數(shù)語(yǔ)法 // 具名函數(shù) function xxx(arg1, arg2) { console.lo...
摘要:因?yàn)樗划a(chǎn)生屬于它自己上下文的箭頭函數(shù)的另一個(gè)用處是簡(jiǎn)化回調(diào)函數(shù)。箭頭函數(shù)使用場(chǎng)景箭頭函數(shù)適合于無(wú)復(fù)雜邏輯或者無(wú)副作用的純函數(shù)場(chǎng)景下,例如用在的回調(diào)函數(shù)定義中,另外目前等庫(kù),都大量使用箭頭函數(shù),直接定義的情況已經(jīng)很少了。 0.為什么會(huì)出現(xiàn)箭頭函數(shù)? 1.傳統(tǒng)的javascript函數(shù)語(yǔ)法并沒(méi)有提供任何的靈活性,每一次你需要定義一個(gè)函數(shù)時(shí),你都必須輸入function () {},這至少...
摘要:改動(dòng)函數(shù)的改變不算太大,都是一些其他語(yǔ)言早就有的功能,而一直比較欠缺的,比如函數(shù)參數(shù)默認(rèn)值,任意參數(shù)的表示法,最大的變化應(yīng)該是支持箭頭函數(shù)其他語(yǔ)言稱(chēng)之為表達(dá)式,一種對(duì)匿名函數(shù)的一種簡(jiǎn)寫(xiě)方式,以下來(lái)探討一下函數(shù)在中的一些改變默認(rèn)參數(shù)任意參數(shù)操 ES6 functions改動(dòng) ????ES6函數(shù)的改變不算太大,都是一些其他語(yǔ)言早就有的功能,而Javascript一直比較欠缺的,比如函數(shù)參數(shù)...
摘要:,微軟發(fā)布,同時(shí)發(fā)布了,該語(yǔ)言模仿同年發(fā)布的。,公司在瀏覽器對(duì)抗中沒(méi)落,將提交給國(guó)際標(biāo)準(zhǔn)化組織,希望能夠成為國(guó)際標(biāo)準(zhǔn),以此抵抗微軟。同時(shí)將標(biāo)準(zhǔn)的設(shè)想定名為和兩類(lèi)。,尤雨溪發(fā)布項(xiàng)目。,正式發(fā)布,并且更名為。,發(fā)布,模塊系統(tǒng)得到廣泛的使用。 前言 作為程序員,技術(shù)的落實(shí)與鞏固是必要的,因此想到寫(xiě)個(gè)系列,名為 why what or how 每篇文章試圖解釋清楚一個(gè)問(wèn)題。 這次的 why w...
摘要:它是一個(gè)通用標(biāo)準(zhǔn),奠定了的基本語(yǔ)法。年月發(fā)布了的第一個(gè)版本,正式名稱(chēng)就是標(biāo)準(zhǔn)簡(jiǎn)稱(chēng)。結(jié)語(yǔ)的基本擴(kuò)展還有一些沒(méi)有在這里詳細(xì)介紹。 前言 ES6標(biāo)準(zhǔn)以及頒布兩年了,但是,好像還沒(méi)有完全走進(jìn)我們的日常開(kāi)發(fā)。這篇文章從ES6的基本類(lèi)型擴(kuò)展入手,逐步展開(kāi)對(duì)ES6的介紹。 ECMAScript和JavaScript JavaScript是由Netscape創(chuàng)造的,該公司1996年11月將JavaSc...
閱讀 2394·2021-11-22 14:56
閱讀 10887·2021-09-08 10:45
閱讀 2076·2019-08-30 13:54
閱讀 2923·2019-08-29 16:54
閱讀 2092·2019-08-29 14:20
閱讀 1846·2019-08-29 12:25
閱讀 1912·2019-08-29 12:17
閱讀 1112·2019-08-23 18:29