js 预解析 函数提升 变量提升

首先预解析包括函数提升和变量提升。

什么情况产生预解析?当页面加载遇到script标签时,用function声明的函数和var 声明的变量会进行全局代码解析和全局代码预解析。

预解析的特点:

  • 程序在代码执行之前会先进行预解析;

  • 预解析会解析带var的变量和函数声明定义的函数function,解析函数优先级比解析变量要高:

  • 可以认为解析的时候分为两步,先去解析所有的函数声明定义的函数,再去解析所有的带var变量;

  • 解析过程当中,如果函数重名,会覆盖(后面的函数会把前面的覆盖掉)

    如果变量(指的是变量和函数)重名,会忽略;

  • 解析函数的时候,函数定义方式不同,解析过程也不大一样:

    如果是函数声明定义,整个函数都要被提升

    function func(){};

    如果是表达式定义,只会提升变量

    var func = function(){};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值