打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
JavaScript中的变量提升(Hoisting) | Fundebug博客

译者按: let和var对于变量提升的影响不同。

为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。



提升(Hoisting)并不是指函数或则变量移动到最顶部。实际上,它们并没有移动到任何其它地方去。

对于变量声明,JavaScript引擎会在初始化变量的时候赋值为“undefined”。如下图所示,在第6行设置断点来查看:



有没有注意到变量showme的值最开始是undefined。当JavaScript引擎执行完第6行代码,showme的值会更新为hoisting

来看看使用let和var声明的变量如何做提升的

如果使用let关键字声明变量,那么在声明之前的位置访问该变量,都会报错。



但是,对于使用var声明的变量,则不会报错。



译者注:从安全角度考虑,推荐使用要求更加严格的let来声明变量。如果使用var声明,测试不到位的话,可能会在运行时触发一些莫名其妙的bug。想要更保险,推荐使用Fundebug做线上监控。




版权声明:转载时请注明作者Fundebug以及本文地址:https://blog.fundebug.com/2018/05/14/what_is_hoisting_in_js/

您的用户遇到BUG了吗?

体验Demo 免费使用
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
几张动图带你回顾JS的变量提升
javascript变量声明 及作用域
Javascript 之《深入理解ES6》
JavaScript中const、var和let区别浅析
JavaScript 学习-9.使用let声明变量
JavaScript学习笔记2
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服