【初级】函数参数值传递问题
题 1: 代码执行完后a
、b
的值是什么?
let a = [1, 2, 3]
let b = 1
const foo = (obj, num) => {
obj = [5, 4, 3]
obj[1] = 999
obj = [5, 4, 3]
num = 2
}
foo(a, b)
console.log(a, b);
// 结果: [1, 2, 3] 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
题2:给出a(1)
返回值
function a(x, f=()=>x) {
var x;
y = x;
x = 2;
return [x,y,f()];
}
a(1)
1
2
3
4
5
6
7
2
3
4
5
6
7
// 打印结果是:
2 1 1
1
2
2
- B - 能够正确给出题目1的输出
- A - 解释JS函数传参的逻辑, 以及正确阐述代码过程中各变量的值
- S - 正确给出题目2的返回 并阐述流程