请大家帮我解答一下
// 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)
// 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)
|
wly19960911Dec 29, 2018
1
这个和变量提升没一点关系,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) 这样还涉及变量提升和作用域 |
|
azh7138mDec 29, 2018 via Android
2
最近眼不行了,我也没看到哪里有变量提升了。。。
|
|
crazybingganDec 29, 2018
3
意思是说 前一个 `add` 被 后一个 `add` 覆盖?
|
|
iamzuoxinyuDec 29, 2018
4
这么些代码是会被打死的,哪怕你是个前端也不行。
|
|
jifenggDec 29, 2018
5
因为你 add 里面没有 return.....
|
|
HilongDec 29, 2018
6
好好再研究一下函数的定义吧
|
|
zhangyimingDec 29, 2018 via Android
7
函数没有 return
|