前端刷题遇到的坑

js 部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1;
var bb = 1;
function aa(bb) {
bb = 2;
alert(bb);
}
aa(bb);
alert(bb);

2;
var bb = 1;
function aa() {
bb = 2;
alert(bb);
}
aa(bb);
alert(bb);

刚开始 1 处的代码我认为弹出的是 2,2 ;被我做急了,只看到函数内部的 bb 没有使用 var 定义,忽略了参数里面已经有了 bb,最后函数内部的 bb 就是函数内部的局部变量了,所以结果因该是 2,1

2 处的代码执行后就是 2,2 因为函数参数里面没有了 bb 变量,函数内部对 bb 赋值改变了全局变量 bb 的值