求助一个关于JavaScript变量提升问题

JKooll 2017-03-03 02:24:40

最近刚接触ES6,为什么最后输出的是undifine而不是hello world
...全文
123 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
挨踢直男 2017-03-03
  • 打赏
  • 举报
回复
既然你说是 es6了, 那就把var换成let, 就不会有这种问题了
#麻辣小龙虾# 2017-03-03
  • 打赏
  • 举报
回复
你代码可以这样理解 var tmp = new Date(); function f(){ var tmp; //变量提升了, /* *就相当远变量提升到作用域顶部先定义(注意是先定义未赋值),所以在下 *面的console.log执行的时候并没有将tmp赋值"hello world",所以就输出undifine; */ console.log(tmp); if(false){ tmp = "hello world"; } } f();

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧