首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS 函数中的 arguments 类数组对象

1. arguments 介绍 2. arguments 转为数组 3. 箭头函数中没有 arguments 1. arguments 介绍 众所周知,js 是一门非常灵活的语言。...当我们在 js 中调用一个函数时,经常会给函数传递一些参数,js 把调用函数时传入的全部实参存储到一个叫做 arguments 的类数组对象里面 arguments 是一个类数组对象,不是一个真正的数组...', 'css', 'js']) 通过打印结果可以发现,arguments 的原型是 Object,而数组的原型是 Array 那么关于 arguments 是什么 ?...这里做下总结 arguments 是类数组对象(伪数组),即不是一个真正的数组,而是一个对象。...它有 length 属性,并且可以通过下标获取元素,但是它不能调用数组方法,就是因为它不是真正的数组,这一点可以通过查看它的原型验证 2. arguments 转为数组 arguments 是类数组对象

5.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

JavaScript arguments 对象详解

什么是 arguments MDN 上解释: arguments 是一个类数组对象。代表传给一个function的参数列表。...2. arguments 操作 2.1 arguments length arguments 是个类数组对象,其包含一个 length 属性,可以用 arguments.length 来获得传入函数的参数个数...arguments 时通常第一步都会将其转换为数组,同时 arguments 使用不当还容易导致性能损失,那么为什么不将 arguments 直接设计成数组对象呢?...3.4 arguments 转数组 Array.from() 是个非常推荐的方法,其可以将所有类数组对象转换成数组。 4. 数组与类数组对象 数组具有一个基本特征:索引。这是一般对象所没有的。...arguments 对象 Advanced Javascript: Objects, Arrays, and Array-Like objects JavaScript 特殊对象 Array-Like

1.5K100

jsarguments分析

env 这四个参数传进去,然后在CreateArgumentsObject 里,首先用Object函数创建一个空的对象obj,然后先往这个对象里挂载一些属性,其中包括但不限于: 1.设置该对象的Class...为Arguments(这个我们用Object.prototype.toString.Call(arguments)可以看到) 2.设置该对象的构造函数为Object(通过arguments.constructor...还重新生成一个对象parameterMap来存储,每一步具体的操作为: 1.把实参元素存储到obj里。...到这里我们还没看出什么问题,arguments对象看起来差不多是这样的 arguments = { Class: 'Arguments', constructor: Object,...的属性时,会调用内部的arguments的get方法,这个方法会到ParameterMap对象里面找值,所以这里就会用到getter/setter,所以不管我们操作的变量是arguments[0],还是

67640

JavaScript 函数参数-Arguments(实参)对象

六、Arguments(实参)对象 6.1 定义 (1)由于 JavaScript 允许函数有不定数目的参数,所以需要一种机制,可以在函数体内部读取所有参数。这就是arguments对象的由来。...(2)arguments对象包含了函数运行时的所有参数,arguments[0]就是第一个参数,arguments[1]就是第二个参数,以此类推。这个对象只有在函数体内部,才可以使用。...5.4 和数组的关系 (1)需要注意的是,虽然arguments很像数组,但它是一个对象。数组专有的方法(比如slice和forEach),不能在arguments对象上直接使用。...(2)如果要让arguments对象使用数组方法,真正的解决方法是将arguments转为真正的数组。 (3)下面是两种常用的转换方法:slice方法和逐一填入新数组。 ?...5.5 callee 属性 (1)arguments对象有一个名为callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数。 (2)下面是经典的阶乘函数 ?

1.5K10

【JavaScript】函数 ⑥ ( 使用 arguments 获取所有实参 | arguments 内置对象 | 伪数组概念 )

一、使用 arguments 获取所有实参 1、arguments 内置对象 在 定义 JavaScript 函数 时 , 有时 不确定 形参的个数 , 形参写少了不够用 , 写多了又很浪费 , 这里...推荐使用 arguments 内置参数对象 ; 在 JavaScript 的 每个函数 的 内部都可以访问 内置的 arguments 对象 , 该对象中 包含了 调用者 传递给函数的所有 实参 , 即使...在 函数 形参 中没有明确定义 的 参数 , 仍然可以通过 arguments 内置参数对象 进行获取 ; 2、伪数组概念 函数内部的 arguments 对象 是一个 " 伪数组 " , 其并不是真正的数组...: 无法使用数组的 pop() / push() 等函数 ; 3、arguments 实参遍历 arguments 伪数组 对象 中的 元素个数 , 可以使用 arguments.length 属性获取..., 同时 也可以 使用 索引下标 访问 arguments 中的 实参 ; 在下面定义的函数中 , 遍历 arguments 内置伪数组对象 代码示例如下 : // 定义函数

23410

前端day11-JS学习笔记(构造函数、对象的API、作用域、arguments关键字)

通过前面的学习我们知道,js代码是从上往下执行的,这样有什么不好的地方呢?...关键字介绍 1.arguments关键字:获取函数的所有实参 2.为什么要有arguemnts关键字 js是一门弱语言:声明函数的时候假如只有一个形参,实际上在调用的时候无论我们传入多少实参程序都不会报错...test(); test(100); test(10, 20); 基本包装类型 为了让js中的基本数据类型也可以像对象一样调用方法,js中提供了三种特殊的对象类型(基本包装类型...) new Number() new String() new Boolean() json对象介绍 json对象js对象外观上唯一的区别: json对象的属性和值都需要双引号,js对象不需要 为什么要有...json对象:因为在实际开发中,后台并不是只是为了前端服务,他们还需要为android和ios服务 如果直接返回一个js对象,那么其他语言无法转换,为了统一,所以会返回给我们一个json对象,这样前端/

82110

JS 函数参数默认值、Arguments 和 Rest parameter

console.log(total(1, 10, 100)) // 111 参数设置注意事项 有默认值的参数要往后靠 参数的默认值可以是其它参数的运算表达式(如 z = x+y) 三、arguments...通过以上代码可知,默认参数不存在 arguments 中 function total(x, y = 2, z = 3) { return arguments.length } console.log...1, undefined, 100)) // 3 console.log(total(1, 10, 100)) // 3 通过以上代码可知,undefined 作为参数传入时,也存在于 arguments...中 function total(x, y = 2, z = 3) { return arguments.length } console.log(total(1, 10, 100, 1000)...) // 4 通过以上代码可知,arguments 只要传入的参数都计算在内 四、.length 获取函数没有默认值的参数 function totalA(x, y = 2, z = 3) { return

2.9K30
领券