栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

JavaScript中的变量提升(Hoisting)

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScript中的变量提升(Hoisting)

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

  • 原文: What is Hoisting in Javascript
  • 译者: Fundebug

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

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

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

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

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

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

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

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/246725.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号