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

求解一个关于js 变量声明和定义以及函数调用的问题

求解一个关于js 变量声明和定义以及函数调用的问题

森栏 2018-09-07 10:09:43
作为Js初学者而言,这是一个令我费解的问题,代码如下:var a = 'a';(function(){console.log(a);var a = 'b';})();如下是在chrome浏览器中调用后的结果:自己的理解是,Js在编译时会对变量和函数进行扫描,然后再按照顺序执行,在自执行函数内部,首先先声明var a,再按照顺序执行,所以上面的代码可以看成是如下执行顺序:var a = 'a';(function(){var a;console.log(a);var a = 'b';})();所以输出的是undefined不知道理解的是否正确。如果不正确的话,希望能够解释一下!
查看完整描述

1 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

正解,函数内部声明提前,赋值保持不变,执行console.log时只声明了,而没有赋值


查看完整回答
反对 回复 2018-10-21
  • 1 回答
  • 0 关注
  • 468 浏览
慕课专栏
更多

添加回答

举报

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