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
不可以,只有警察可以查。房屋和住宿的开放必须显示身份证登记,同时身份证信息将被发送到公安局的系统,但是除了涉及非法犯罪的处理外,还需要转让,一般警察无权对个人通讯记录,房屋信息,住所地址等进行查询。...
黑客可以用手机入侵吗(黑客如何入侵手机)(tiechemo.com)一直致力于黑客(HACK)技术、黑客QQ群、信息安全、web安全、渗透运维、黑客工具、找黑客、黑客联系方式、24小时在线网络黑客、黑...
重装系统后电脑上不了网如何解决呢?导致重装电脑上不了网的重要原因是网卡驱动安装不正确或网络DNS设置不当所造成的。针对新装电脑无法上网的情况,我们可以通过以下方法来解决。 目前Windows7以上版...
选购卫浴用品一直是许多网民的困扰。应对近些年日益时兴的智能化洗手间,很多人 更为疑惑。智能坐便器确实好不好用呢?销售市场上许多知名品牌的智能坐便器应当如何选择?知名品牌的商品一定是高品质的吗?为了...
dns服务器未响应(服务器未响应的解决办法?)我们在日常上网的时候,有时候网络(网线)会突然的连接异常,打不开网站页面,但是QQ或者其他的网络即时通讯软件可以正常使用,但是却不能正常打开网页。使用电脑...
中新网2月8日电 据台湾“联合新闻网”报道,美国麻省理工学院科学家日前通过纳米技术,将菠菜转变为能检测爆炸物质的传感器,并回传信息给科学家。 据报道,当菠菜根检测到地下水中含有常在地雷等炸药...