首页 > 试题广场 >

执行以下程序,下列选项中,说法错误的是() function

[不定项选择题]

执行以下程序,下列选项中,说法错误的是()

function fn(value){

console.log(arguments instanceof Array); ...①

console.log(arguments.length);...②

console.log(value);...③

var arr = [...arguments];...④

}

fn(1,2,3);

  • ①式的输出结果为false

  • ②式输出结果为2

  • ③式的输出结果为1

  • ④式可以利用arguments对象新生成一个数组

D是对的
MDN文档说明了将arguments转换为Array的方法有:
var args = Array.prototype.slice.call(arguments);
var args = [].slice.call(arguments);
// ES2015
const args = Array.from(arguments);
const args = [...arguments];

发表于 2022-04-02 15:25:36 回复(5)
arguments 是一个对象,不是一个 Array 。它类似于Array ,但除了length属性和索引元素之外没有任何Array 属性。
发表于 2021-12-14 18:57:16 回复(0)
想问一下D哪里错了,就是新生成一个数组,感觉没有问题

发表于 2022-03-31 16:00:04 回复(4)
D错是因为他不是利用arguments对象新生成一个数组,而且利用拓展运算符将arguments伪数组转化为真数组,题中说的有点勉强,懂什么意思就行了
发表于 2022-08-20 13:16:11 回复(1)
arguments:
  • 内置对象

  • 有length,可以被遍历

  • 无pop() push()等数组方法 ,arguments是伪数组,不是数组

  • 可以结合...arr扩展字符串生成数组
  • var arr3 = [1, 2, 3];
            let arr4 = [...arr3];
            console.log(arr4); // 123


 function fn(value) {
            console.log(arguments instanceof Array); // false
            console.log(arguments.length); // 3
            console.log(value); // 1 如果实参大于形参,按照形参的个数匹配;如果实参小于形参的个数,多余的形参会是undefined,那么打印出来就是NaN
            var arr = [...arguments];
            console.log(arr); // [1,2,3]
        }
        fn(1, 2, 3);


发表于 2021-12-25 21:55:56 回复(1)
arguments.length 应该为3
发表于 2022-01-10 17:34:06 回复(1)
感觉d是对的
发表于 2022-05-04 22:15:33 回复(0)
arguments 本质上是一个对象,不是一个 Array, 所以①改为instanceof Object时为true
发表于 2022-03-11 09:52:57 回复(0)

这是全部输出,最后一个输出是打印数组arr
图片说明

编辑于 2024-01-17 22:15:42 回复(0)
我对第四个的答案理解是:可以通过 arguments 这个对象的自身属性去生成一个新的数组。这样说的话,就跟代码起冲突了,因为代码中是使用 拓展符 这个外力来生成了新数组。
编辑于 2023-12-12 14:55:08 回复(0)
④式可以利用arguments类数组生成一个数组  这样描述才是对的argument是类数组不是对象
发表于 2023-05-25 09:12:34 回复(0)
好,语文题考得好!
发表于 2022-12-01 11:31:55 回复(0)
所以第四个对还是不对啊?

发表于 2022-09-20 16:55:41 回复(0)
d 就一个数组,所以不存在新旧之说?
发表于 2022-09-20 09:46:10 回复(0)
打印结果分别是 false 3  1  [1,2,3]
发表于 2022-09-14 10:09:33 回复(0)
D是在玩文字游戏吗?
发表于 2022-09-04 20:21:49 回复(0)
所以D错了???
发表于 2022-08-15 23:44:04 回复(0)
value是函数的形参,匹配第一个实参,因此③式输出结果为1
发表于 2022-07-12 11:37:02 回复(0)
①考的是原型链,两个原型链对象不一样所以false(说实话你不打印仔细看一下会中招知道两个是对象但不知道两个不一样)。②③④不用讲一看就看出来,④扩展运算符是会生成新的数组。
发表于 2022-06-26 22:29:47 回复(1)
d选项真的没问题,可迭代对象的解构,没毛病
发表于 2022-06-21 23:54:21 回复(0)