选择题1571/1628输出什么?

1const value = { number: 10 }; 2 3const multiply = (x = { ...value }) => { 4 console.log(x.number *= 2); 5}; 6 7multiply(); 8multiply(); 9multiply(value); 10multiply(value);
难度:
2021-07-02 创建

本题为"单选题"

参考答案:

正确选项:C:20, 20, 20, 40

在ES6中,我们可以使用默认值初始化参数。如果没有给函数传参,或者传的参值为 "undefined" ,那么参数的值将是默认值。上述例子中,我们将 value 对象进行了解构并传到一个新对象中,因此 x 的默认值为 {number:10} 。 默认参数在调用时才会进行计算,每次调用函数时,都会创建一个新的对象。我们前两次调用 multiply 函数且不传递值,那么每一次 x 的默认值都为 {number:10} ,因此打印出该数字的乘积值为20。 第三次调用 multiply 时,我们传递了一个参数,即对象value*=运算符实际上是x.number = x.number * 2的简写,我们修改了x.number的值,并打印出值20。 第四次,我们再次传递value对象。 x.number之前被修改为20,所以x.number * = 2打印为40

最近更新时间:2021-07-03

赞赏支持

题库维护不易,您的支持就是我们最大的动力!