请教一个问题
来源:2-6 选择题
weixin_慕的地5241954
2019-09-18 05:31:58
(2)整个代码的执行:
因为test函数中有声明的局部变量a,这种情况是不会沿着作用域去外面找的( 函数内如果声明了一个变量与全局的变量一样,就不会再使用全局的了。)
按照代码的执行顺序,alert(a)在前,var a在后,局部变量a还没有赋值,所以开始输出来的a是undefined。
既然alert(a)在前,var a在后,那意思就是函数内部也有预解析?或者说var a相当于test(a)里面的局部变量a?只是test(a)里面的a变量还没赋值
2回答
你好,
视频中是有讲解这种情况的哦:
如果忘记了可以再回顾下。解析机制的教辅资料也可以进行查看:
祝学习愉快!
好帮手慕星星
2019-09-18
同学你好,
理解的没有问题,在函数被调用的时候,函数内部会先进行预解析,然后再从上到下执行代码。
预解析的时候a变量提升被赋值为undefined,所以开始弹出的值为undefined,被赋值后a的值是11 。
自己可以再测试理解下,祝学习愉快!
相似问题