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