zoukankan      html  css  js  c++  java
  • javaScript总结51: 变量查找规则与词法作用域

    作用域:

    1 在es5.0中只有函数可以构成一个作用域 2 全局作用域: 整个js代码执行的环境 3 局部作用域: 函数可以构成一个局部作用域 4 全局变量: 在全局作用域中申明的变量 5 局部变量: 在函数构成的局部作用域中申明的变量

    var a = 1;
      function fn(){
       var a = 2;
        function fnA(){
         a = 3;
         console.log(a);  //3
        }
       fnA();
       console.log(a); // 3
      }
        fn();
      console.log(a);// 1

    词法作用域(静态作用域):

    1. 外部作用域不能访问内容作用域的变量
    2. 查找变量时,顺着作用域链查找
    3. 在代码执行之前,先执行预解析规则
    4. 如果要调用函数,函数内部也要先进行预解析
    5. 如果要给变量赋值之前,一定要先找到变量

    变量的查找规则

    1 先在自己的作用域里面找,如果没有就顺着作用域链往上找,找到则返回,找不到则一直找到全局为止 2 如果要直接赋值的话,找到全局也没有,那么浏览器会帮我们自动创建一个出来 3 如果只是访问的话,找到全局都没有就报错 xxx is not defined

  • 相关阅读:
    java网络请求工具类
    MySql 日期比较大小
    JAVA泛型整理
    循环list从list中移除数据
    MySql UNION字段
    session理解
    IDEA鼠标悬停提示变量值
    JAVA常用的RPC框架
    字符串查找重复字符最多的
    java List分组
  • 原文地址:https://www.cnblogs.com/autoXingJY/p/9053922.html
Copyright © 2011-2022 走看看