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

  • 相关阅读:
    多表关联 update
    pdf转成图片
    JS中也可以使用JSTL和EL标签
    JSTL String时间转成 date
    SQL函数创建错误
    使用 itext、flying-saucer 实现html转PDF(转)
    Redis 命令参考
    1、课程介绍
    layui 弹出框提交表单
    一张图解析
  • 原文地址:https://www.cnblogs.com/zysfx/p/12773890.html
Copyright © 2011-2022 走看看