开发者社区> 问答> 正文

var的变量提升底层原理是什么?

已解决

var的变量提升底层原理是什么?

展开
收起
pandacats 2019-12-10 10:48:33 983 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    本质上是由JS编译过程导致的。

    代码的执行分为两个步骤

    对声明进行编译——为var或function分配地址内存。

    执行——进行正常的赋值。

    例如var a = 2; 编译器先不会管a = 2这一赋值步骤。它最先要做的是把var a编译掉,而运算操作留在原地。声明在编译角度上被移动到了作用域的顶端。这就是提升的底层原理。

    拓展话题——TDZ暂时死区

    aVar的值符合提升的原则。aLet就有点意思了,它抛出来的错误实际上就是暂时死区错误。简单来说,从声明到到let的运算步骤为止的这段时空被锁死,外界在此期间寻求访问,不被允许。

    2019-12-10 10:48:47
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载