摘要:普通函數(shù)里代表了調(diào)用時傳入的參數(shù),但是箭頭函數(shù)不然,箭頭函數(shù)會把當(dāng)成一個普通的變量,順著作用域鏈由內(nèi)而外地查詢。不能被箭頭函數(shù)不能與關(guān)鍵字一起使用,會報錯。
語法
具有一個參數(shù)的簡單函數(shù)
var single = a => a single("hello, world") // "hello, world"
沒有參數(shù)的需要用在箭頭前加上小括號
var log = () => { alert("no param") }
多個參數(shù)需要用到小括號,參數(shù)間逗號間隔,例如兩個數(shù)字相加
var add = (a, b) => a + b add(3, 8) // 11
函數(shù)體多條語句需要用到大括號
var add = (a, b) => { if (typeof a == "number" && typeof b == "number") { return a + b } else { return 0 } }
返回對象時需要用小括號包起來,因?yàn)榇罄ㄌ柋徽加媒忉尀榇a塊了
var getHash = arr => { // ... return ({ name: "Jack", age: 33 }) }
直接作為事件handler
document.addEventListener("click", ev => { console.log(ev) })
作為數(shù)組排序回調(diào)
var arr = [1, 9 , 2, 4, 3, 8].sort((a, b) => { if (a - b > 0 ) { return 1 } else { return -1 } }) arr // [1, 2, 3, 4, 8, 9]特性
this:用function生成的函數(shù)會定義一個自己的this,而箭頭函數(shù)沒有自己的this,而是會和上一層的作用域共享this。
apply & call:由于箭頭函數(shù)已經(jīng)綁定了this的值,即使使用apply或者call也不能只能起到傳參數(shù)的作用,并不能強(qiáng)行改變箭頭函數(shù)里的this。
arguments:普通函數(shù)里arguments代表了調(diào)用時傳入的參數(shù),但是箭頭函數(shù)不然,箭頭函數(shù)會把a(bǔ)rguments當(dāng)成一個普通的變量,順著作用域鏈由內(nèi)而外地查詢。
不能被new:箭頭函數(shù)不能與new關(guān)鍵字一起使用,會報錯。
typeof運(yùn)算符和普通的function一樣:
var func = a => a console.log(typeof func); // "function"
instanceof也返回true,表明也是Function的實(shí)例:
console.log(func instanceof Function); // true
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/86297.html
摘要:特性介紹箭頭函數(shù)是新增的特性之一,它為這門語言提供了一種全新的書寫函數(shù)的語法。用生成的函數(shù)會定義一個自己的,而箭頭函數(shù)沒有自己的,而是會和上一層的作用域共享。 本文同步自我得博客:http://www.joeray61.com JS中的箭頭 箭頭在JS里并不算是個新鮮的玩意兒,一直以來,JS都支持-->這樣的箭頭。 很早的時候有些瀏覽器還不支持JS,當(dāng)時的人們?yōu)榱思嫒葸@些瀏覽器,需要這...
摘要:因?yàn)榧^函數(shù)本身沒有所以不可以當(dāng)作構(gòu)造函數(shù),也就是說,不可以使用命令,否則會拋出一個錯誤。箭頭函數(shù)不可以使用對象,該對象在函數(shù)體內(nèi)不存在。 es6學(xué)習(xí)筆記-箭頭函數(shù)_v1.0 箭頭函數(shù)使用方法 var f = v => v; //普通函數(shù)配合箭頭函數(shù)寫法,這里并且是傳參的 //相當(dāng)于 var f = function(v) { return v; }; /*-----------...
摘要:所以,如果一個數(shù)組成員不嚴(yán)格等于,默認(rèn)值是不會生效的因?yàn)椴粐?yán)格等于對象解構(gòu)對象的解構(gòu)與數(shù)組有一個重要的不同。數(shù)組的元素是按次序排列的,變量的取值由它的位置決定而對象的屬性沒有次序,變量必須與屬性同名,才能取到正確的值。 http://es6.ruanyifeng.com/?se... 一、作用域 let //i作用域在全局,每次循環(huán)i都被重新賦值了而覆蓋了之前的值 var a = []...
摘要:但是有了尾調(diào)用優(yōu)化之后,遞歸函數(shù)的性能有了提升。常被用來檢查對象中是否存在某個鍵名,集合常被用來獲取已存的信息。循環(huán)解構(gòu)對象本身不支持迭代,但是我們可以自己添加一個生成器,返回一個,的迭代器,然后使用循環(huán)解構(gòu)和。 一、let和const 在JavaScript中咱們以前主要用關(guān)鍵var來定義變量,ES6之后,新增了定義變量的兩個關(guān)鍵字,分別是let和const。對于變量來說,在ES5中...
摘要:錯誤的寫法錯誤的寫法中的構(gòu)造函數(shù)新增了支持默認(rèn)參數(shù)和不定參數(shù)。箭頭函數(shù)的簡單理解箭頭函數(shù)的左邊表示輸入的參數(shù),右邊表示輸出的結(jié)果。但是有了尾調(diào)用優(yōu)化之后,遞歸函數(shù)的性能有了提升。 作為前端切圖仔,越發(fā)覺得自己離不開函數(shù)了。 說到JavaScript函數(shù),腦子里都是匿名函數(shù)、普通函數(shù)、閉包函數(shù)、構(gòu)造函數(shù)......然后還能說出一大堆函數(shù)的概念。如果你達(dá)到這個水平,那么函數(shù)對你來說沒有難度...
閱讀 1807·2021-09-23 11:34
閱讀 2527·2021-09-22 15:45
閱讀 13332·2021-09-22 15:07
閱讀 2360·2021-09-02 15:40
閱讀 4251·2021-07-29 14:48
閱讀 1151·2019-08-30 15:55
閱讀 3307·2019-08-30 15:55
閱讀 2250·2019-08-30 15:55