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