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

关于js解析的问题

关于js解析的问题

呼如林 2019-05-23 17:18:59
vara=100varb=function(){console.log(a)vara=1;}b()vara=100varb=function(){vara=1;console.log(a)}b()第一段代码打印undefined第二段代码打印1。我的问题是第一段不应该打印1吗,因为赋值声明会提前于执行语句,即使不打印1应该打印全局a的那个值100?
查看完整描述

2 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

js执行顺序
vara;
varb;
a=100
b=function(){
vara;
console.log(a)
a=1;
}
b()
a=100
b=function(){
vara;
a=1;
console.log(a)
}
b()
                            
查看完整回答
反对 回复 2019-05-23
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

我仅说第一段代码(相当于这样执行的):
vara=100
varb=function(){
vara;//变量声明提升
console.log(a);//这时打印应为undefined
a=1;
}
b()
                            
查看完整回答
反对 回复 2019-05-23
  • 2 回答
  • 0 关注
  • 289 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号