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