话说,今天去贷款多面试了,结果很悲惨。不过呐,也学到了很多的东西,就像出来和我说的一句话,基础知识很重要。看来得好好总结积累了。请大家监督。哈哈
好啦,进入正题了,来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]; }