// demo2 问执行完毕后 x, y, z 的值分别是多少? 1、undefined、undefined
var x = 1, y = z = 0;
console.log(x,y,z)
function add(n) {
n = n+1;
}
add(x);
function add(n) {
n = n + 3;
}
z = add(x);
console.log(x,y,z)
1
wly19960911 2018 年 12 月 29 日
这个和变量提升没一点关系,y 也不可能是 undefined,这个代码想表达什么,我没看见和变量提升有一点关系的逻辑,
var x = 1, y = z = 0; console.log(x,y,z) function add(n) { return n = n+1; } add(x); function add(n) { return n = n + 3; } z = add(x); console.log(x,y,z) 这样还涉及变量提升和作用域 |
2
azh7138m 2018 年 12 月 29 日 via Android
最近眼不行了,我也没看到哪里有变量提升了。。。
|
3
crazybinggan 2018 年 12 月 29 日
意思是说 前一个 `add` 被 后一个 `add` 覆盖?
|
4
iamzuoxinyu 2018 年 12 月 29 日
这么些代码是会被打死的,哪怕你是个前端也不行。
|
5
jifengg 2018 年 12 月 29 日
因为你 add 里面没有 return.....
|
6
Hilong 2018 年 12 月 29 日
好好再研究一下函数的定义吧
|
7
sunzongzheng 2018 年 12 月 29 日 via Android
函数没有 return
|