当前位置: 首页 > news >正文

arguments 和 剩余参数

加油 !! 💕

文章目录

  • 前言
  • 一、arguments
  • 二、arguments转成array
  • 三、箭头函数不绑定arguments
  • 四、剩余参数 ...


前言

其实在es6之后不推荐使用 arguments , 建议使用剩余参数


一、arguments

  • arguments 是一个 对应于 传递给函数的参数类数组(array-like)对象
 	function foo(x, y, z) {console.log(arguments);//   [arguments] {'0':10, '1':20, '2':30}}foo(10, 20, 30);
  • array-like意味着它不是一个数组类型,而是一个对象类型:但是它却拥有数组的一些特性,比如说length,比如可以通过index索引来访问;但是它却没有数组的一些方法,比如forEach、map等

二、arguments转成array

function foo(x, y, z) {console.log(arguments);//  方式一: es6var arr = Array.from(arguments);var arr2 = [...arguments];//  方式二: es5var arr3 = Array.prototype.slice.call(arguments);var arr4 = [].slice.call(arguments);//  方式三:自定义var length = arguments.length;var arr5 = [];for (var i = 0; i < length; i++) {arr5.push(arguments[i]);}}foo(10, 20, 30);

三、箭头函数不绑定arguments

  • 箭头函数是不绑定 arguments 的,所以我们在箭头函数中使用arguments会去上层作用域查找!
  • 在 浏览器里 是没有 arguments 的,但是在node里是有的(因为在node里一个js文件会被当成一个模块,这个模块会被包裹在一个函数里面,函数通过 .call 的方式,call({},kdfkdfj,dfjalfj ),除第一个参数都当作剩余参数)


四、剩余参数 …

  • 上个点里我们说,箭头函数不能绑定 aeguments ,我们可以使用 剩余函数
var foo = (num1,...args)=>{console.log(arguments)  // 不存在console.log(args)} 
http://www.lryc.cn/news/114230.html

相关文章:

  • 【BASH】回顾与知识点梳理(十二)
  • 本地构建包含java和maven的镜像
  • Programming abstractions in C阅读笔记:p76-p83
  • 已解决(三个问题)|neo4j Failed authentication attempt for ‘meter‘ from 127.0.0.1
  • neo4j查询语言Cypher详解(二)--Pattern和类型
  • 动态规划(用空间换时间的算法)原理逻辑代码超详细!参考自《算法导论》
  • Jmeter添加cookie的两种方式
  • 【ArcGIS Pro二次开发】(58):数据的本地化存储
  • React配置代理服务器的5种方法
  • 树莓派:5.jar程序自启运行
  • Vivado中SmartConnect和InterConnect的区别
  • 了解HTTP代理日志:解读请求流量和响应信息
  • 排序-堆排序
  • 挑战Open AI!!!马斯克宣布成立xAI.
  • HTTP协议学习笔记1
  • 【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解
  • 【学习日志】2023.Aug.6,支持向量机的实现
  • LeetCode_动态规划_中等_1749.任意子数组和的绝对值的最大值
  • 无涯教程-Perl - 环境配置
  • QT显示加载动画
  • 原型模式(C++)
  • web浏览器打开本地exe应用
  • 微信小程序如何配置并使用less?
  • 【Spring】反射动态修改Bean实例的私有属性值
  • MySQL DDL 数据定义
  • Ventoy 设置VTOY_MAX_SEARCH_LEVEL = 0只扫描U盘根目录 不扫码子目录
  • vue3父子同信的双向数据实现
  • Shiro是什么?为什么要用Shiro?
  • Vue3+Vite+Pinia+Naive后台管理系统搭建之九:layout 动态路由布局
  • 从零开始学Python(Ⅰ)基本变量与数据类型