JavaScript中的预解析

预解析(重点)

  • 预解析 其实就是聊聊 js 代码的编译和执行
  • js 是一个解释型语言,就是在代码执行之前,先对代码进行通读和解释,然后在执行代码
  • 也就是说,我们的 js 代码在运行的时候,会经历两个环节 解释代码执行代码

解释代码

  • 因为是在所有代码执行之前进行解释,所以叫做 预解析(预解释)

  • 需要解释的内容有两个

    • 声明式函数

      • 在内存中先声明有一个变量名是函数名,并且这个名字代表的内容是一个函数
    • var
      

      fn();

    ​ function fn(){

    ​ console.log(1);

    ​ }

    fn();

    ​ var fn=10;

    fn();

    ​ function fn(){

    ​ console.log(2);

    ​ }

    fun();

    //2

    //2

    //报错

    预解析:

    1.fn()不需要

    2.function fn()需要声明

    3,fun()不需要

    4,var fn()需要

    5,fn()不需要

    6,function fn()需要声明

    7,fn()不需要

    执行:

    1.调用第一个fn函数

    2.fn()调用第一个函数,此时第一个函数在预解析的时候已经被覆盖了,结果是2

    3.fn变成一个变量,不是函数了

    4,fn()出错

    5,后面不执行

    关键字

    • 在内存中先声明有一个变量名
  • 看下面一段代码

    fn()
    console.log(num)
    
    function fn() {
      console.log('我是 fn 函数')
    }
    
    var num = 100
    
  • 经过预解析之后可以变形为

    function fn() {
      console.log('我是 fn 函数')
    }
    var num
    
    fn()
    console.log(num)
    num = 100
    
  • 赋值式函数会按照 var 关键字的规则进行预解析## 预解析(重点)

  • 预解析 其实就是聊聊 js 代码的编译和执行

  • js 是一个解释型语言,就是在代码执行之前,先对代码进行通读和解释,然后在执行代码

  • 也就是说,我们的 js 代码在运行的时候,会经历两个环节 解释代码执行代码

解释代码

  • 因为是在所有代码执行之前进行解释,所以叫做 预解析(预解释)

  • 需要解释的内容有两个

    • 声明式函数

      • 在内存中先声明有一个变量名是函数名,并且这个名字代表的内容是一个函数
    • var
      

      fn();

    ​ function fn(){

    ​ console.log(1);

    ​ }

    fn();

    ​ var fn=10;

    fn();

    ​ function fn(){

    ​ console.log(2);

    ​ }

    fun();

    //2

    //2

    //报错

    预解析:

    1.fn()不需要

    2.function fn()需要声明

    3,fun()不需要

    4,var fn()需要

    5,fn()不需要

    6,function fn()需要声明

    7,fn()不需要

    执行:

    1.调用第一个fn函数

    2.fn()调用第一个函数,此时第一个函数在预解析的时候已经被覆盖了,结果是2

    3.fn变成一个变量,不是函数了

    4,fn()出错

    5,后面不执行

    关键字

    • 在内存中先声明有一个变量名
  • 看下面一段代码

    fn()
    console.log(num)
    
    function fn() {
      console.log('我是 fn 函数')
    }
    
    var num = 100
    
  • 经过预解析之后可以变形为

    function fn() {
      console.log('我是 fn 函数')
    }
    var num
    
    fn()
    console.log(num)
    num = 100
    
  • 赋值式函数会按照 var 关键字的规则进行预解析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值