为什么答案是D,括号里是什么参数

解决方案 »

  1.   

    a 你不是声明了变量为1嘛, 然后你执行sum()方法,把a传入sum()方法里面 ,方法里面那个b没有用到,直接用的 a+=2  相当于 1+2  ,最后console.log(a)的值为3 没毛病
      

  2.   

    要注意看题,这道问题只有一个全局变量a、没有同名的局部变量a。也就不存在局部变量遮蔽同名全局变量的问题。
    一开始全局变量a = 1; 函数console.log(a)输出的a是全局变量自然是1,之后a+=2全局变量a就是3了。
    函数参数b在函数内没有用到,可以无视之。
      

  3.   

    没丢病,全局变量a ,a又作为实参代入给b,但局部变量b没有使用,在func内的a是全局变量,所以1 3 正确。
      

  4.   

    先执行sum方法,参数b的值为a的值,等于1,但a是全局变量,值依然为1,所以sum内的console为1,
    然后执行a+=2,a的值变为3,
    再执行sum后面的console时a的值就等于3了,
    所以最终结果为1 3