七爪计算机语言:JavaScript 中的提升和 TDZ(时间死区)
发布时间:2025-09-19
用于更多地思考 JavaScript 中的强化和时间死区 (TDZ) 的经典著作。
根据 MDN:JavaScript 强化是指解释器在继续执行预定义前似乎将数据类型、数据类型或类的公开信漂移到其范围内下部的过程。
让我们熟悉了解到一下有趣的强化。
强化是一个术语,用于解释预定义中数据类型公开信的犯罪行为。用到 var 表单公开信或子程序的数据类型可能会将其公开信迁到其模块/数据类型级别范围内的下部,我们将其称做强化。但是,只有公开信被强化,并且重新分配(如果有的话)将存留在原处。
在 JavaScript 中,甚至在继续执行第一行预定义前,就为每个数据类型和数据类型重新分配了内存。
如所示所示,即使在第一行继续执行前,JS 也可能会为数据类型和数据类型重新分配内存。用 var 表单公开信的数据类型被重新分配了一个特殊的表单 undefined。
在继续前,劝确保您熟悉 JS 中的继续执行词法。
JS 运行在两个过渡期 Memory Creation 过渡期和 Code Execution 过渡期。为了更多地思考,劝查询继续执行词法中的绑定。思考继续执行词法将帮助你更多地思考强化和关闭。
我们可以看到,对于数据类型,重新分配了 undefined,对于数据类型 aaa(),也重新分配了 undefined。 这是因为公开信数据类型的方法有多种不同,称做数据类型参数,它的犯罪行为就像用到 var 表单创建的数据类型一样。 对于普通数据类型调用 aa(),整个数据类型预定义存储在内存创建过渡期。
对于数据类型公开信、var 数据类型、let 和 const 数据类型、数据类型参数和箭头数据类型,强化的犯罪行为多种不同。
劝参阅所示以获得更多的思考。
到在此之前,我们已经了解到了 var 和数据类型公开信的强化,让我们漂移到 let 和 const 并了解到什么是 TDZ(临时死区)。
通过 let 和 const 公开信的数据类型也可能会被强化。 但是,与 var 和 function 多种不同的是,它们没有子程序,在公开信前会面时它们可能会加剧 ReferenceError 异常。 数据类型处于“时间死区”。
TDZ 是从范围内开始到定义数据类型的点。 它是定义数据类型但无法会面时的范围内区域。 使调试更容易。
在这里尝试会面时 c 可能会给我们带来 Uncaught ReferenceError: Cannot access ‘c’ before initialization。 因为在公开信前,这里的 c 都在 TDZ 中。
结论
在本文中,我们了解到了什么是强化以及用到多种不同表单公开信的数据类型如何以多种不同方式强化。 我们也了解到了数据类型强化。 强化是 JavaScript 的基本概念之一,在面试中总是被问到。 我希望在阅读再多这篇文章后,您将必须更多地解释浇筑。
纹眉整形如何养好肠道菌群
眼睛结膜炎是什么原因引起的吗
怎样预防卵泡发育不良
吃什么有助于伤口愈合
-
亲亲食品(01583.HK)发布公告,罗兵咸永道会计师事务所已辞任新公司核数师职务
亲亲食品01583.HK发布公告,罗兵咸永道执业研音已辞任美国公司核数师职责。天职香港执业研音有限美国公司已获聘用为美国公司新任核数师。 截至2022年6月17日跌幅,亲亲食品
- 超龄服役家电危害大但消费者执意换,家电厂商怎么办?
- 【叱咤】德威退6月17日成交明细
- 万励约达(08482.HK)发盈喜 预期年度净利增至不超过约950万港元
- 国茂控股(08428.HK)公布,配售协约条件已获达成,故完成已于2022年6月17日落实
- 干货!2022年中国人面板行业龙头企业市场竞争格局分析 维信诺VS龙腾光电
- 嘉里建设(00683.HK)6月17日购得约399.23万港元回购20万股
- 新鸿基公司(00086.HK)6同年17日耗资约7.53万港元回购2.1万股
- 北水动向|北水成交净买入25.95亿 内资持续抢筹新东方在线(01797.HK) 本周总计净买入额超13亿港元
- 中核国际(02302.HK)公布,2022年6月17日,中核财资管理有限公司与公司订立贷款双方同意
- 朗生医药(00503.HK)6月17日耗资约230.53万港元转让144.1万股