zoukankan      html  css  js  c++  java
  • JS的作用域,作用域链及预解析

    1.js作用域

    全局作用域(整个script标签内),  局部作用域(函数内部)

    2.作用域链

    内部函数访问外部函数的变量时,采用的是链式查找的方式进行获取的。

    这种结构我们称为作用域链。 

     

    3..预解析

    JS代码在浏览器中是由JS引擎进行解析执行的,分为两步,预解析和代码执行

    预解析分为 变量预解析(变量提升) 和 函数预解析(函数提升)

    (1)变量预解析: 把所有变量的声明提升到当前作用域的最前面,不提升赋值操作

    示例:

    console.log("num ");

    var num = 10;

    预解析后:

    var num;

    console.log("num");

    num = 10;

    //所以返回的是一个undefined

    (2)函数预解析

    将所有函数声明提升到当前作用域的最前面

    实例:

    var num = 10;

    fn();

    function fn(){

      console.log(num);

      var num = 10;

    }

    预解析后:

     var num;

    function fn(){

      var num;

      console.log(num);

      num = 20;

    }

    num = 10;

    fn();

    // 预解析后,代码是逐行执行的,执行到 fn()后,去调用函数 fn(),在函数内执行到console.log(num);

    //由于前面只声明了num而没有赋值,所以最后输出的是  undefined

  • 相关阅读:
    Third practice 3
    Third practice 2
    Third practice 1
    mock模拟get和post请求
    eslint语法检测报错解决办法
    python 入门到实践第四章案例
    python 入门到实践第三章课后练习
    python 入门到实践第三章
    axios拦截器的使用
    axios的实例和模块封装
  • 原文地址:https://www.cnblogs.com/zysfx/p/12773890.html
Copyright © 2011-2022 走看看