关于 arguments 和 剩余参数(rest)
- 箭头函数中不再支持
arguments
,只能使用...rest
语法 arguments
不是纯正的数组类型,无法使用数组的函数arguments
只能获取全部实参值,不能有所选择- 要想
arguments
实现同等的效果:[].slice.call(arguments,1)
(此处的1为传入的值)
关于上面的不能使用数组方法的一条,我们可以简单的对比一下 for in 和 for of 来加深理解
for in
遍历的是key
并且key
是String
字符串类型,是无法进行数学运算的,它会把所有可枚举的属性全部罗列出来,包括后加的原型对象上面的方法;for of
遍历的是value
,并且只会遍历数组的元素;forEach
不可以使用break,continue
结束循环,不可以使用return
返回,空数组不执行;不可以遍历对象;for of
适用遍历数组、类1数组对象、字符串、map
、set
等拥有迭代器对象的,但是不能遍历对象,相比较forEach
,可以正确响应break、continue、return
;- 所有拥有
Symbol.iterator
的对象被称为可迭代的;可迭代对象的概念几乎贯穿于整门语言之中,不仅是for of
循环,还有Map
、Set
构造函数、解构赋值,以及新的展开操作符。
对于上面提到了 call
这边顺便说一下 call,apply,bind
之间的使用区别
- 首先他们都是为了改变
this
指向而生的 call
和apply
都是直接使用,他们之间的区别是传入参数的不同,call
是直接传入,apply
是数组的形式传入;如下:
obj.call(target, arg1, arg2, ...);
obj.apply(targetj, [arg1, arg2, ...]);
bind
传入的参数是和call
一样的,不过它返回的是一个函数,必须再使用()
执行一下才可。
这边只是做了一个简单的对比,大家想要深入的学习的话,可以尝试着自己去实现一下这三个方法。
关于 arguments 和 剩余参数(rest)相关推荐
- ES6(二)——字符串模板、标签模板字符串、函数的默认参数、剩余参数、数组对象的展开语法、数值的表示、Symbol
一.字符串模板基本使用 在ES6之前,如果我们想要将字符串和一些动态的变量(标识符)拼接到一起,是非常麻烦和丑陋的(ugly). ES6允许我们使用字符串模板来嵌入JS的变量或者表达式来进行拼接: 首 ...
- TypeScript入门教程 之 点差算子/散布运算符/...运算符/剩余参数/...参数
TypeScript入门教程 之 点差算子/散布运算符/...运算符/剩余参数/...参数 点差算子/散布运算符 散布运算符的主要目标是散布数组或对象的元素.最好用示例说明. 应用 一个常见的用例是将 ...
- 初步探究ES6之字符串模板和剩余参数,默认参数
本文介绍一下字符串模板以及剩余参数,默认参数的概念以及使用. 先来说说字符串模板. 字符串模板 ES6中允许使用反引号 ` 来创建字符串,此种方法创建的字符串里面可以包含由美元符号加花括号包裹的变量$ ...
- javascript语法_了解JavaScript中的解构,剩余参数和传播语法
javascript语法 The author selected the COVID-19 Relief Fund to receive a donation as part of the Write ...
- ES6函数第二篇:剩余参数与展开运算符的练习
上一篇讲了剩余参数和展开运算符,这一篇来几个小练习巩固一下吧 首先明确一点,展开运算符实现的克隆是浅克隆,即若克隆引用值,实际克隆的是它的地址,举个栗子叭 [例1] const obj = {name ...
- ES6/06/ES6简介,ES6新增语法,let声明变量,const声明常量,var,let和const总结,数组解构,对象解构,箭头函数,剩余参数
ES6简介 ES全称:ECMAScript ; 由ECMA国际化组织制定的标准脚本语言的标准化规范: 为什么使用ES6? 每一次标准的诞生都意味着语言的完善,功能的加强,JavaScript语言本身也 ...
- 什么是剩余参数 ...arg
什么是剩余参数 剩余参数语法允许我们将一个不定数量的参数表示为一个数组. 例如: function sum (first, ...args) {console.log(first); // 10con ...
- 函数 函数的基本使用 函数的四种基本形式 可选参数 函数默认参数 函数的剩余参数 构造函数() 函数重(chong)载
函数主要定义行为的 匿名参数 const mingz = function 无名字(参数:数值类型):返回值的类型 接口函数: type(关键字) 别名 = (参数:number)=>返回值 ...
- 前端学习(1164):剩余参数02
s2加入三个点接受剩余值
最新文章
- ScheduledThreadPoolExecutor的相关知识
- 学python可以做什么产品-学完Python可以做什么?主要用途有哪些?
- 谈谈虚拟化及其安全性
- 2016百度之星 - 资格赛(Astar Round1)
- MySQL数据库“十宗罪”(十大经典错误案例)
- spring InitializingBean接口
- Kubernetes——基本概念与理论
- artDialog ( v 6.0.2 ) content 参数引入页面 html 内容
- c语言利用参数方程绘图,CG实验1-利用C语言图形函数绘图概要1.doc
- 手机上有没有学python的软件-如何优雅的在手机上进行Python编程
- OpenLayers学习笔记(十一)— 飞机速度矢量线预测
- JavaScript问题01 js代码放在header和body的区别
- excel 工作表保护密码破解代码
- Visual Studio 2017 Enterprise绿色精简版介绍
- 南京大学2022年计算机考研复试分数线多少
- [学习报告]《LeetCode零基础指南》第三讲循环-gyro
- 置换选择排序算法详解(C语言实现)
- 你不得不知的网络编程三剑客
- javac不是内部或外部命令,也不是可运行的程序 或批处理文件的细节问题(window10)
- 点击化学DBCO修饰药物(DBCO-PEG-雷替曲塞,甲氨喋呤MTX,培美曲塞,磺胺地索辛)