// 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 11:41:31 +08:00
这个和变量提升没一点关系,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 12:23:39 +08:00 via Android
最近眼不行了,我也没看到哪里有变量提升了。。。
|
3
crazybinggan 2018-12-29 14:18:04 +08:00
意思是说 前一个 `add` 被 后一个 `add` 覆盖?
|
4
iamzuoxinyu 2018-12-29 15:00:55 +08:00
这么些代码是会被打死的,哪怕你是个前端也不行。
|
5
jifengg 2018-12-29 16:36:18 +08:00
因为你 add 里面没有 return.....
|
6
Hilong 2018-12-29 16:59:56 +08:00
好好再研究一下函数的定义吧
|
7
sunzongzheng 2018-12-29 19:42:06 +08:00 via Android
函数没有 return
|