直接上代码 不墨迹
function name(user){ user="zero"; alert(user); } name('零度')
这个的结果可能很多人都会猜错 自己去试一下吧!
说执行顺序 为下边的更复杂的一个代码做铺垫
1、执行函数的时候 把“零度” 赋值给了 user
2、 在执行函数的过程中 user 又被赋值“zero”
3、于是结果是zero
开始稍微更复杂一点的(就是混合多一点代码)
function changeName(username){ username = '零度'; alert(username); } var username = 'zero'; changeName(username); console.log(username); console.log(window.username);
参差不齐 大家凑活看吧!
先说结果 零度 zero zero
解析
函数中的username 不是全局变量 是一个形参的赋值 形参众所周知 是一个局部变量 于是 打印出来的肯定就是全部变量的数值 (zero) 了 函数执行 那么就是"零度" 了 你可以把那个形参去掉 这样的话 函数中的那个username 才是全局变量