1const value = { number: 10 }; 2 3const multiply = (x = { ...value }) => { 4 console.log(x.number *= 2); 5}; 6 7multiply(); 8multiply(); 9multiply(value); 10multiply(value);
本题为"单选题"
参考答案:
正确选项: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

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