第一节:arguments。

话说,今天去贷款多面试了,结果很悲惨。不过呐,也学到了很多的东西,就像出来和我说的一句话,基础知识很重要。看来得好好总结积累了。请大家监督。哈哈

好啦,进入正题了,来arguments搞起。

1:arguments是什么?答:arguments就是一个函数中的局部变量,通过它你可以获得传递给这个函数的所有的参数

2:arguments有什么特点?答:他是一个类数组,什么是类数组?就是可以通过下标来访问,也有长度,但是不能有数组的其他方法。

3:使用arguments有什么主意事项?答:首先根据v8引擎的说法,我们最好只访问他的长度,或者arguments【num】进行访问,不能进行赋值了等一系列的操作。

4:arguments如何转换为数组?答:可以用slice方法 如下:

let args = [].slice.call(arguments);但是这种方法在v8引擎里边不被推荐,可能会阻止v8引擎的优化参考:https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#3-managing-arguments。

5:推荐的方法:

let args = (
arguments.length === 1 ? 
[arguments[0]] : 
Array.apply(null, arguments)
);

或者

let len=arguments.length;
arg = new Array(len);
for(let i=0;i<len;i++){
  arg[i] = arguments[i];  
}

  

 

原文地址:https://www.cnblogs.com/hjdjs/p/7252978.html