前端学习:预解析

预解析

预解析: 在所有代码开始执行之前, 对代码进行通读并解释, 解释完毕以后再开始执行代码

函数调用问题:

  • 在函数定义的时候, 被装进 "盒子" 内的代码是不会执行的

  • 在函数调用的时候, 代码才会执行

预解析有两部分:

  • 全局预解析:打开页面的时候,会对全局代码进行预解析,但函数体内的代码不管

  • 局部预解析:当你函数调用的时候,会在函数的私有作用域下进行预解析,解析完毕执行函数体内代码

预解析都解释哪些内容:

  • var

  • 声明式函数

var的预解析:

  • 向浏览器内存声明, 有一个变量被定义了, 但是没有赋值

  • 赋值操作是在代码执行阶段才会执行的

 console.log(num)
 var num    //输出undefined

分析:

当你使用一个变量的时候

  • 如果报错: xxx is not defined, 说明这个变量没有定义

  • 如果出现 undefined 说明这个变量定义过, 但是没有赋值

 console.log(num)
    包含两个操作
    1. var num
    2. num = 100
    var num = 100

代码:

   console.log(num)
​
  var num = 100
 
打开浏览器后预解析:
​
•     第 1 行 代码, 不需要预解析
​
•     第 2 行 代码, 有 var 关键字
​
•     进行预解析, var num 在浏览器声明了一个叫做 num 的变量, 但是此时不进行赋值
​
 开始执行代码:
   第 1 行 代码, console.log(num) 访问 num 这个变量
   因为预解析的时候已经声明了 num 变量
   所以此时是 有变量, 但是没有值
   所以出现 undefined
   
    第 2 行 代码, 因为 var num 已经在预解析执行过了
    这里只有 num = 100 这句代码了
    给 num 变量进行赋值
    
      console.log(num)
      var num = 100
        等价于
        var num
        console.log(num)
        num = 100

​
console.log(num) //undefined
console.log(num2) //报错,var num2 = 200 不参加预解析,函数内不预解析
var num = 100
fun
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值