arguments 值 两次为啥不一样

来源:2-8 【学习任务】函数参数是否真的理解

芥子1204

2021-04-27

// c有默认值的情况
function side1(arr) {
arr[0] = arr[2];
}
function a(a, b, c = 3) {
c = 10;
side1(arguments); // 这里传过去的值是 1,1,1 , 为什么??
return a + b + c;
}
console.log(a(1, 1, 1));

// c没有默认值的情况
function side2(arr) {
arr[0] = arr[2];
}
function b(a, b, c) {
c = 10;
side2(arguments); // 这里传过去的值是 1,1,10 , 为什么??不要告诉我因为没有默认值
return a + b + c;
}
console.log(b(1, 1, 1));

写回答

1回答

谢成

2021-04-28

关于默认参数与arguments,分为两种情况,严格模式和非严格模式,可以看看文档:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/arguments


0
1
芥子1204
非常感谢!
2021-04-28
共1条回复

JavaScript ES(6-11)全版本语法 前端都需要的基础课

前端无门槛学习,从ES6到ES11,一套课程掌握JS最新语法

1328 学习 · 296 问题

查看课程