- 从零开始学习jQuery (三) 管理jQuery包装集
- 网站建设排名外链另类攻略
- button对象如何使用disabled属性
- 如何写出高性能SQL语句
- 手机网页的制作方法七_WML表单内容
- hreflang 标签
- PHP序列化和反序列化函数实例详解
- SEO基础细节:nofollow的介绍与应用
- vs asp.net 如何发布项目和删除最近项目
- 如何在aspx页面中插入swf动画
邮箱:
手机:15383239821
js中arguments介绍
arguments是什么呢?
它是一个对象,是一个长的很像数组的对象,是一个对应于传递给函数的参数的类数组对象。
arguments包含什么内容呢?
它是函数运行时的实参列表。
我们来实际操作一下看arguments里到底有什么
arguments对象是所有(非箭头)函数中都可用的局部变量。你可以使用arguments对象在函数中引用函数的参数。此对象包含传递给函数的每个参数,第一个参数在索引0处。例如,如果一个函数传递了三个参数,你可以以如下方式引用他们:
arguments[0]
arguments[1]
arguments[2]
参数也可以被设置:
arguments[1] = 'new value';
arguments对象不是一个 Array 。它类似于Array,但除了length属性和索引元素之外没有任何Array属性。例如,它没有 pop 方法。但是它可以被转换为一个真正的Array:
var args = Array.prototype.slice.call(arguments);
var args = [].slice.call(arguments);
// ES2015
const args = Array.from(arguments);
const args = [...arguments];
对参数使用slice会阻止某些JavaScript引擎中的优化 (比如 V8 - 更多信息)。如果你关心性能,尝试通过遍历arguments对象来构造一个新的数组。另一种方法是使用被忽视的Array构造函数作为一个函数:
var args = (arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments));
如果调用的参数多于正式声明接受的参数,则可以使用arguments对象。这种技术对于可以传递可变数量的参数的函数很有用。使用 arguments.length来确定传递给函数参数的个数,然后使用arguments对象来处理每个参数。要确定函数签名中(输入)参数的数量,请使用Function.length属性。
对参数使用 typeof
typeof参数返回 'object'。
console.log(typeof arguments); // 'undefined'
// arguments 对象只能在函数内使用
function test(a){
console.log(a,Object.prototype.toString.call(arguments));
console.log(arguments[0],arguments[1]);
console.log(typeof arguments[0]);
}
test(1);
/*
1 "[object Arguments]"
1 undefined
number
*/
可以使用索引确定单个参数的类型。
console.log(typeof arguments[0]); //this will return the typeof individual arguments.
对参数使用扩展语法
您还可以使用Array.from()方法或扩展运算符将参数转换为真实数组:
var args = Array.from(arguments);
var args = [...arguments];
属性
arguments.callee 指向当前执行的函数。
arguments.caller 指向调用当前函数的函数。
arguments.length 指向传递给当前函数的参数数量。
arguments[@@iterator]
返回一个新的Array迭代器对象,该对象包含参数中每个索引的值。
注意:现在在严格模式下,arguments对象已与过往不同。arguments[@@iterator]不再与函数的实际形参之间共享,同时caller属性也被移除。
来源:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/arguments
-
2023-09-19PHP Empty函数详解
-
2013-11-04移动控件的自定义属性
-
2013-05-01怎么样用vs2008打开用vs2010编的文件
-
2019-11-22JS中的arguments参数
-
2023-03-24phpMyAdmin 5.0.2的配置
