js 类数组arguments详解
arguments并不是一个真正的数组,而是一个“类似数组(array-like)”的对象; 就像下面的这段输出,就是典型的类数组对象: [12, 23, callee: ƒ, Symbol(Symbol.iterator): ƒ] 一、类数组 VS 数组 相同点: 都可用下标访问每个元素 都有length属性 不同点: 数组对象的类型是Array,类数组对象的类型是Object; 类数组对象不能直接调用数组API; 数组遍历可以用for in和for循环,类数组只能用for循环遍历; function calc(){ console.log(arguments); // ["sky", "moon", callee: ƒ, Symbol(Symbol.iterator): ƒ] console.log(arguments[0]); // sky console.log(arguments.length); // 2 // arguments.pop(); // 报错,arguments.pop is not a function } calc('sky', 'moon'); 类数组对象转为数组对象方法: Array . prototype . slice . call ( arguments ); function calc(){ var newArr = Array