猿问

变量提升到底是怎么回事?

这块代码第二个为什么弹5啊?
varx=1;
vary=2;
method(8)
alert(x+y)
functionmethod(y){
x+=2;
y+=3;
alert(x+y)
}
繁花如伊
浏览 578回答 2
2回答

慕标5832272

你这个问题要理解的不是变量提升,而是变量的作用域,你的代码和下面的代码是一样的,别看形参是y,实际上这是两个不同的值varx=1;vary=2;method(8)alert(x+y)functionmethod(a){x+=2;a+=3;alert(x+a)}

MMMHUHU

函数内部变量有定义就找函数内部的变量,没定义就找全局的,函数内部的变量和全局的变量名相同,前者会覆盖后者varx=1;vary=2;method(8)alert(x+y)functionmethod(y){x+=2;//全局变量x=1+2y+=3;//形参y=8+3alert(x+y)}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答