• 1. arguments 介绍

  • 2. arguments 转为数组

  • 3. 箭头函数中没有 arguments

1. arguments 介绍


众所周知,js 是一门非常灵活的语言。当我们在 js 中调用一个函数时,经常会给函数传递一些参数,js 把调用函数时传入的全部实参存储到一个叫做 arguments 的类数组对象里面

arguments 是一个类数组对象,不是一个真正的数组。它类似数组,除了 length 属性和通过索引获取元素之外没有任何数组属性。这一点可以通过打印它看到

function test() {    console.dir(arguments);}test('html', 'css', 'js')console.dir(['html', 'css', 'js'])

通过打印结果可以发现,arguments 的原型是 Object,而数组的原型是 Array

那么关于 arguments 是什么 ? 这里做下总结

arguments 是类数组对象(伪数组),即不是一个真正的数组,而是一个对象。它有 length 属性,并且可以通过下标获取元素,但是它不能调用数组方法,就是因为它不是真正的数组,这一点可以通过查看它的原型验证

2. arguments 转为数组


arguments 是类数组对象,不是一个真正的数组,意味着不能使用数组方法,但是可以将它转换为真正的数组

方法一: 直接遍历(新手写法)

const args = [];for (let i = 0; i < arguments.length; i++) {    args.push(arguments[i])}

方法二: Array.prototype.slice(下面两种方式都可以)

const args = Array.prototype.slice.call(arguments)const args = [].slice.call(arguments)

方法三: ES6 语法(下面两种方式都可以)

const args = [...arguments]const args = Array.from(arguments)

3. 箭头函数中没有 arguments


arguments 只存在于普通函数中,而在箭头函数中是不存在的

下面代码抛出错误异常:Uncaught ReferenceError: arguments is not defined

const arrow = () => {    console.log(arguments);}arrow('html', 'css', 'js')

箭头函数中虽然没有 arguments,但是可以使用 ... 接收所有实参

const arrow = (...args) => {    console.log(args);}arrow('html', 'css', 'js')

JS 函数中的 arguments 类数组对象相关推荐

  1. 详解 js 函数中的 arguments

    详解 js 函数中的 arguments 1.什么 arguments 简单来说:arguments 是一个对应于传递给函数的参数的类数组对象 arguments 对象是所有(非箭头)函数中都可用的局 ...

  2. JS函数中的arguments

    <!DOCTYPE html> <html><head><meta charset="UTF-8"><title>< ...

  3. JavaScript函数中的arguments(js函数中的arguments,函数默认参数arguments)

    简述:js中的函数大家都比较熟悉,今天来分享下函数中的默认参数arguments.js的函数参数和其他的语言有些不同,它并不介意你传进来多少个参数,以及参数的数据类型,即使你在定义函数时,只设置了两个 ...

  4. 将普通函数当中的arguments(类数组转换为数组以及类数组调用数组方法)

    1.把类数组转换为数组 function fn() {/* console.log(arguments);// let arr = Array.from(arguments); 方法1let arr ...

  5. 详细介绍js函数中的arguments

    arguments相当于一个"伪数组" ECMAScript函数的参数和其他的语言还是有些不同的,他并不介意你传进来多少个参数,以及参数的数据类型:通俗的说,即使你在定义函数时,只 ...

  6. JS 中的类数组对象如何转换为数组?

    大家好,我是前端西瓜哥,今天说一下 JS 的类数组对象是什么,以及如何将类数组对象转为数组. 类数组对象是什么? 类数组对象,就是含有 length 属性的对象,但这个对象不是数组. 通常来说还会有 ...

  7. Python学习 Day31 JS类数组对象

    JS类数组对象 一.三元运算符 概述:三元运算符由三部分组成,使用语法如下: A ? B : C 三元运算符A:它需要的是一个布尔值(其他类型数值也可以,但是需要隐式转换为布尔值) 如果A部分为布尔值 ...

  8. 如何把类数组对象转为数组对象

    目录 一.数组 二.对象 三.类数组对象 3.1 什么是类数组对象 3.2 js中哪些是类数组对象 3.3 类数组对象怎么转化为数组 1.Array.from()(ES6+) 2.slice 3.sp ...

  9. 【JavaScript】类数组对象

    欢迎学习交流!!! 持续更新中- 文章目录 类数组对象 arguments 类数组对象 理解:是JS中一种特殊的对象.本质上来说对象是满足了一定条件的数组,类数组的使用目的在于使得一个对象既有数组的特 ...

最新文章

  1. k8s kubesphere进入ks-installer容器删除istio并重启ks-installer命令
  2. idea 类注释,方法注释设置
  3. UVA 10635——Prince and Princess
  4. mysql查询数据为0的所有字段6_MySQL8.0 初级学习笔记(六)查询数据
  5. vue-router向子组件传递参数
  6. MySQL 添加、查看字段注释
  7. 九个编写Dockerfiles的常见错误
  8. STM32启动代码概述
  9. 调节RStudio的代码字体大小
  10. 海康sdk java_java调用海康sdk案例
  11. 搜索引擎原理第二阶段之预处理
  12. 83 项开源视觉 SLAM 方案够你用了吗?
  13. Powerdesigner显示表的comment和列的comment的方法
  14. python中运行代码时没有报错但是也没有输出而且还有exit code 0的结束标志
  15. 03 - JS数据类型转换/判断相等
  16. 计算机网络之7层协议
  17. 浅析侧供给结构性改革及三去一降一补
  18. NDM(Neat Download Manager)删除所有下载记录
  19. java.io.IOException: unexpected end of stream on https://xxx.xxx.xxx.xxx:84/
  20. 中国城市三级联动数据

热门文章

  1. 司守奎《数学建模算法与应用》课后习题:线性规划
  2. linux期中架构文档,Linux期中架构 - osc_jbr77wuo的个人空间 - OSCHINA - 中文开源技术交流社区...
  3. statfs结构体和函数详解——例程
  4. @Primary和@Qualifier 使用
  5. 我的思维工具(三)收益半衰期
  6. 关于解决Windows已经阻止此软件因为无法验证发行者解决方法
  7. [GKCTF2020]CheckIN
  8. 基于UI组件的Vue可视化布局、快速生成.vue代码
  9. sql 修改字段中部分值
  10. AntV G2 饼图