每日一题 2020-11-19

以下函数会打印什么?

function b(x, y, a){
    arguments[2] = 10;
    console.log(arguments[2]);
    a = 20;
    console.log(arguments[2]);
}
b(1, 2, 3);

答案: 10 20

解析:

  • js非严格模式下 函数中的形参变量和aguments存在映射机制(映射:相互之间影响)

arguments 和 形参 之间会互相影响 其中一个更改,另外一个也会更改

  • js严格模式下 arguments不会产生映射机制,同时arguments.callee不能使用
posted @ 2020-11-22 12:41  pandajs163  阅读(64)  评论(0)    收藏  举报