JavaScript箭头函数与剩余参数怎么使用
JavaScript箭头函数与剩余参数怎么使用
本篇内容主要讲解“JavaScript箭头函数与剩余参数怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript箭头函数与剩余参数怎么使用”吧!
1. 什么是箭头函数?
箭头函数表达式语法比函数表达式更简洁,即函数的一种简化形式。
它的写法:
()=>{};//可以用来写一个匿名函数
它的结构:
const/let函数名参数=>函数体
比如现在有一个一般形式的函数表达式
letadd=function(x,y){returnx+y;};
可以用箭头函数来写:
letadd=(x,y)=>{returnx+y;};
2. 箭头函数的化简写法
单个参数
//对于单个参数,我们可以省略外面的圆括号letaddOne=x=>{returnx+1;}
单行函数体
//对于单行返回函数体,可以同时省略{}和returnletadd(x,y)=>x+y;
单行对象
//对于返回单行对象,在外面加个()letadd(x,y)=>({value:x+y;});
3. 箭头函数的基础知识
箭头函数没有 this,它会根据作用域链在外层中寻找 this。
举个例子:
varA=1;letfun={A:2,printA:()=>{console.log(this.A);},printAA:function(){letprint=()=>{console.log(this.A);}print();}};fun.printA();//1fun.printAA();//2
调用 printA
,里面是输出 this.A
,由于箭头函数没有 this
,所以在外层寻找,外层是 fun
。在这里,fun.printA()
是在全局作用域中调用的,所以外层的 this
指向的是 window
,由于之前用 var
定义了一个 A = 1,所以输出的是 1。
调用 printAA
,在里面调用了 print()
,输出 this.A
,看 print
这个函数,是个箭头函数,他没有 this
,所以找外层,它的外层是 printAA
,它是由 fun
调用的,所以它的 this
指向 fun
,所以输出 fun
中定义的 A,也就是 2。
4. 箭头函数不适用的场景
作为构造函数
实例化构造函数之后,它的 this 指向实例化的对像,而箭头函数没有 this,所以它不能用来做构造函数。
需要 this 指向调用对象的时候
需要使用 arguments 的时候
箭头函数中没有 arguments,可以使用剩余参数来存参数。
5. 剩余参数
5.1) 什么是剩余参数 ?
举个例子:
letadd=(x,y,z,...args)=>{console.log(x,y,z,args);};
args
就是剩余参数。
剩余参数是个数组,它即使没有值,也是以一个空数组形式存在。
比如:
letadd=(x,y,z,...args)=>{console.log(x,y,z,args);}add(1,2,3);
x, y, z 对应参数 1, 2, 3,由于剩余参数没有值,所以空数组形式存在。
5.2) 作用
由于箭头函数没有 arguments
,所以我们可以使用剩余参数替代 arguments
获取实际参数
举个例子:
constprint=(...args)=>{console.log(args);};print(1,2);
5.3) 注意事项
在箭头函数中,即使只有一个剩余参数,也不能省略圆括号
letadd=(...args)=>{};
剩余参数只能是最后一个参数,之后不能再有其他参数,否则会报错
到此,相信大家对“JavaScript箭头函数与剩余参数怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是恰卡编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
推荐阅读
-
WebStorm 与 VS Code 对比:JavaScript 开发该如何选择 IDE?
-
WebStorm 与 VS Code 对比:JavaScript 开发工具选型分析
-
JavaScript闭包用多会造成内存泄露吗
JavaScript闭包用多会造成内存泄露吗今天小编给大家分享一下...
-
javascript中文乱码如何解决
javascript中文乱码如何解决本篇内容介绍了“javascr...
-
PHP学习第十五天——JavaScript入门DOM对象:二
-
Node.js基本内容和知识点
简单的说node.js就是运行在服务端的JavaScript,起初段定位是后端开发语言,由于技术的不够成熟,一般小型项目...
-
PHP与Node.js:一个史诗般开发者的分享
-
JavaScript 中 find() 和 filter() 方法的区别
JavaScript在ES6上有很多数组方法,每种方法都有独特的用途和好处。在开发应用程序时,大多使用数组方法来获...
-
js怎么跟php结合使用
-
简单说说Node.js和JavaScript
Node.js是一个开源和跨平台的JavaScript运行时环境,在浏览器之外运行V8JavaScript引擎(...
-
WebStorm 与 VS Code 对比:JavaScript 开发该如何选择 IDE?
-
WebStorm 与 VS Code 对比:JavaScript 开发工具选型分析
-
JavaScript闭包用多会造成内存泄露吗
JavaScript闭包用多会造成内存泄露吗今天小编给大家分享一下...
-
javascript中文乱码如何解决
javascript中文乱码如何解决本篇内容介绍了“javascr...
-
PHP学习第十五天——JavaScript入门DOM对象:二
-
Node.js基本内容和知识点
简单的说node.js就是运行在服务端的JavaScript,起初段定位是后端开发语言,由于技术的不够成熟,一般小型项目...
-
PHP与Node.js:一个史诗般开发者的分享
-
JavaScript 中 find() 和 filter() 方法的区别
JavaScript在ES6上有很多数组方法,每种方法都有独特的用途和好处。在开发应用程序时,大多使用数组方法来获...
-
js怎么跟php结合使用
-
简单说说Node.js和JavaScript
Node.js是一个开源和跨平台的JavaScript运行时环境,在浏览器之外运行V8JavaScript引擎(...
-
WebStorm 与 VS Code 对比:JavaScript 开发该如何选择 IDE?
-
WebStorm 与 VS Code 对比:JavaScript 开发工具选型分析
-
JavaScript闭包用多会造成内存泄露吗
JavaScript闭包用多会造成内存泄露吗今天小编给大家分享一下...
-
javascript中文乱码如何解决
javascript中文乱码如何解决本篇内容介绍了“javascr...
-
PHP学习第十五天——JavaScript入门DOM对象:二
-
Node.js基本内容和知识点
简单的说node.js就是运行在服务端的JavaScript,起初段定位是后端开发语言,由于技术的不够成熟,一般小型项目...
-
PHP与Node.js:一个史诗般开发者的分享
-
JavaScript 中 find() 和 filter() 方法的区别
JavaScript在ES6上有很多数组方法,每种方法都有独特的用途和好处。在开发应用程序时,大多使用数组方法来获...
-
js怎么跟php结合使用
-
简单说说Node.js和JavaScript
Node.js是一个开源和跨平台的JavaScript运行时环境,在浏览器之外运行V8JavaScript引擎(...