arguments 是一个对应于通报给函数的参数的类数组工具。在(非箭头)函数挪用时,建立的一个 它类似于Array,但除了长度之外没有任何Array属性 的工具 ,它存储的是现实通报给函数的参数(局限于函数声明的参数列表)。此工具包罗通报给函数的每个参数的条目,之一个条目的索引从0更先。例如:
function fn(){ //行使instanceof判断arguments console.log( 'arguments instanceof Array? ' + (arguments instanceof Array) );//false console.log( 'arguments instanceof Object? ' + (arguments instanceof Object) );//true console.log(arguments); console.log(arguments[0]);//string console.log(arguments[1]);//1 } fn('string',1);
控制台显示如下:
从输出我们可以看出arguments 是一个‘object’,带有2个常用的属性callee和caller(文章最后面先容)。对应的参数可以通过条目的索引来获取(从0更先),虽然它不拥有数组的属性,然则我们可以把它转换为一个正在的数组,通过Js中的apply和call,或者es6中的参数扩展的方式,代码如下:
//call var args = Array.prototype.slice.call(arguments); var args = [].slice.call(arguments); //由于slice会阻止某些Js引擎中的优化 (v8)发生一些性能问题,可以接纳如下方式 var args = (arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments)); var args = Array.from(arguments); var args = [...arguments];
通过上面的方式,我们就可以让arguments成为一个真正的Array,我们就能获取参数的长度length,使用array中一些方式,如Join,concat,indexOf等等。
需要注重一点的是只有函数被挪用时,arguments工具才会建立,未挪用时其值为null,例如
console.log(new Function().arguments);//return null
2018年12月24日,历经三天的第五届北京微博交流会北京我国会议酒店圆满结束。此次北京微博交流会是中国社区电商平台领域的本年度盛典,与国际性社区电商平台商业界对接,聚集来源于世界各国的高档展商和...
电信手机通话详单查询怎么查(移动手机通话详单查询浙江) 由于全国各地都已进入复工阶段,如何证明他们已经具备了恢复工作的条件,已成为许多人关注的话题。 根据工信部2月18日的网站,工业和信息技术...
跑业务非常容易就是指销售工作门坎低,非常容易进,可是想搞好市场销售却并不是一个简易的事儿,那麼怎样才能搞好市场销售,售出自身的商品?一、维持乐观的心态乐观的心态是作为一名出色的业务员的最基础的标准...
本文导读目录: 1、OPPO手机的远程守护可以守护vivo手机吗,因为孩子是vivo手机,需要这个设置呢? 2、vivo远程守护功能怎么用 3、vivo怎么控制孩子玩手机时间? 4、viv...
如今高血压病患是愈来愈多,有的人是自身精确测量出去的血压高;也有的人是到医院门诊做检查,查出的血压高;还有的人是病发以后才知道自身身患血压高,但无论是怎么发觉的血压高,服药那时不可或缺的。在服药层面,...
佛山电脑黑客联系相关问题 网上那些会盗号的黑客可信吗相关问题 顶级黑客是什么样的 怎么让病毒入侵别人的QQ(病毒入侵i wanna)...