lgwebdream / FE-Interview

🔥🔥🔥 前端面试,独有前端面试题详解,前端面试刷题必备,1000+前端面试真题,Html、Css、JavaScript、Vue、React、Node、TypeScript、Webpack、算法、网络与安全、浏览器
https://lgwebdream.github.io/FE-Interview/
Other
6.82k stars 896 forks source link

Day217:写出下面代码输出结果,并解释为什么? #1036

Open Genzhen opened 3 years ago

Genzhen commented 3 years ago
const value = { number: 10 };
let number = 2;
const multiply = (x = { ...value }, y = number) => {
  y++;
  console.log((x.number *= y));
};

multiply();
multiply();
multiply(value, number);
multiply(value, number);

每日一题会在下午四点在交流群集中讨论,五点小程序中更新答案 欢迎大家在下方发表自己的优质见解 二维码加载失败可点击 小程序二维码

扫描下方二维码,收藏关注,及时获取答案以及详细解析,同时可解锁800+道前端面试题。

luuman commented 2 years ago

答案:30 30 30 90 前两个在ES6结构函数的作用下,x引用地址不是value。所以两次参数相同。 后两个x值为value的地址,y值始终未2