这块代码第二个为什么弹5啊?
var x = 1;
var y = 2;
method(8)
alert(x+y)
function method(y) {
x += 2;
y += 3;
alert(x+y)
}
这块代码第二个为什么弹5啊?
var x = 1;
var y = 2;
method(8)
alert(x+y)
function method(y) {
x += 2;
y += 3;
alert(x+y)
}
函数内部变量有定义就找函数内部的变量,没定义就找全局的,函数内部的变量和全局的变量名相同,前者会覆盖后者
var x = 1;
var y = 2;
method(8)
alert(x+y)
function method(y) {
x += 2; //全局变量x=1+2
y += 3; //形参y=8+3
alert(x+y)
}
13 回答13k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
3 回答1.3k 阅读✓ 已解决
你这个问题要理解的不是变量提升,而是变量的作用域,你的代码和下面的代码是一样的,别看形参是
y
,实际上这是两个不同的值