JS中箭头函数=>的最全用法及详细讲解
创始人
2024-05-31 06:49:13

概述

JS中=>是箭头函数,是ES6标准中新增的一种新的函数。箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this,arguments,super或new.target。箭头函数表达式更适用于那些本来需要匿名函数的地方,并且它不能用作构造函数。
基础语法

(param1, param2, …, paramN) => { statements }
(param1, param2, …, paramN) => expression
//相当于:(param1, param2, …, paramN) =>{ return expression; }
// 当只有一个参数时,圆括号是可选的:
(singleParam) => { statements }
singleParam => {statements }
// 没有参数的函数应该写成一对圆括号:
() => { statements }

简单示例

	x => x * x

即相当于:

	function (x) {return x * x;}

更短的函数示例

	    var elements = ['Hydrogen','Helium','Lithium','Beryllium'];elements.map(function(element) { return element.length; }); // 返回数组:[8, 6, 7, 9]// 上面的普通函数可以改写成如下的箭头函数elements.map((element) => {return element.length;}); // [8, 6, 7, 9]// 当箭头函数只有一个参数时,可以省略参数的圆括号elements.map(element => {return element.length;}); // [8, 6, 7, 9]// 当箭头函数的函数体只有一个 `return` 语句时,可以省略 `return` 关键字和方法体的花括号elements.map(element => element.length); // [8, 6, 7, 9]// 在这个例子中,因为我们只需要 `length` 属性,所以可以使用参数解构// 需要注意的是字符串 `"length"` 是我们想要获得的属性的名称,而 `lengthFooBArX` 则只是个变量名,// 可以替换成任意合法的变量名elements.map(({ "length": lengthFooBArX }) => lengthFooBArX); // [8, 6, 7, 9]

三元运算符示例
箭头函数也可以使用条件(三元)运算符:

    var simple = a => a > 15 ? 15 : a;simple(16); // 15simple(10); // 10let max = (a, b) => a > b ? a : b;

不与new一起使用
箭头函数不能用作构造器,和 new一起用会抛出错误。

    var Foo = () => {};var foo = new Foo(); // TypeError: Foo is not a constructor

没有prototype属性
箭头函数没有prototype属性。

    var Foo = () => {};console.log(Foo.prototype); // undefined

函数体
箭头函数可以有一个“简写体”或常见的“块体”。

在一个简写体中,只需要一个表达式,并附加一个隐式的返回值。在块体中,必须使用明确的return语句。

    var func = x => x * x;                  // 简写函数 省略return(简写体)var func = (x, y) => { return x + y; }; //常规编写 明确的返回值(块体)

箭头函数递归

    var fact = (x) => ( x==0 ?  1 : x*fact(x-1) );fact(5);       // 120

浏览器兼容性

结语
更多关于箭头函数的详细介绍可参看JS最新的参考文档:箭头函数 - JavaScript

相关内容

热门资讯

车间干劲足 访企问需忙 青海铜业电解车间有序生产。本报记者 张慧慧 摄西宁开发区投资促进局工作人员赵侠元(右)访企问需。本报...
澳大利亚墨尔本举行盛大活动庆祝... (来源:千龙网)新华社墨尔本2月21日电(记者徐海静 熊文苑)澳大利亚墨尔本21日举行中国新年庆祝活...
专家称楼市调控需避免过度刺激,... 来源:董藩 这要看情况。如果一个人不小心摔了一跤,他自己就能爬起来。如果是一杠子把他打倒在地,...
国际锐评丨从“中国游”到“中国... 经济观察网 据央视新闻客户端消息,假期前四天,海南离岛免税销售额达9.7亿元、增长15.8%;外企纷...
新春走基层·记者体验360行丨... (来源:千龙网)虽已立春,渤海湾依旧寒风凛冽。胜利505船行驶在茫茫大海上,向着距离码头20多海里的...