为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

凤凰求蛊 2019-03-11 21:19:24
这块代码第二个为什么弹5啊?    var x = 1;    var y = 2;    method(8)    alert(x+y)    function method(y) {        x += 2;        y += 3;        alert(x+y)    }
查看完整描述

3 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

你这个问题要理解的不是变量提升,而是变量的作用域,你的代码和下面的代码是一样的,别看形参是y,实际上这是两个不同的值


    var x = 1;

    var y = 2;

    method(8)

    alert(x+y)

    function method(a) {

        x += 2;

        a += 3;

        alert(x+a)

    }


查看完整回答
反对 回复 2019-03-28
?
烙印99

TA贡献1829条经验 获得超13个赞

函数内部变量有定义就找函数内部的变量,没定义就找全局的,函数内部的变量和全局的变量名相同,前者会覆盖后者


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)

}


查看完整回答
反对 回复 2019-03-28
?
喵喔喔

TA贡献1735条经验 获得超5个赞

函数中的y 是参数里的y 但函数里的x还是全局的x


查看完整回答
反对 回复 2019-03-28
  • 3 回答
  • 0 关注
  • 606 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信