• 0140 JavaScript作用域:概述、全局作用域、函数作用域、块级作用域


    1.1 作用域概述

    通常来说,一段程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突。
    

    JavaScript(es6前)中的作用域有两种:

    • 全局作用域
    • 局部作用域(函数作用域)

    1.2 全局作用域

    作用于所有代码执行的环境(整个 script 标签内部),或者一个独立的 js 文件。
    

    1.3 局部作用域

    作用于函数内的代码环境,就是局部作用域。 因为跟函数有关系,所以也称为函数作用域。
    
            var num = 10;
            var num = 30;
            console.log(num);
       
            function fn() {
                // 局部作用域
                var num = 20;
                console.log(num);
            }
            fn();
    

    1.4 JS没有块级作用域

    • 块作用域由 { } 包括

    • 在其他编程语言中(如 java、c#等),在 if 语句、循环语句中创建的变量,仅仅只能在本 if 语句、本循环语句中使用,如下面的Java代码:

      java有块级作用域:

      if(true){
        int num = 123;
        system.out.print(num);  // 123
      }
      system.out.print(num);    // 报错
      

      以上java代码会报错,是因为代码中 { } 即一块作用域,其中声明的变量 num,在 “{ }” 之外不能使用;

      而与之类似的JavaScript代码,则不会报错:


    Js中没有块级作用域(在ES6之前)

    if(true){
      var num = 123;
      console.log(123); //123
    }
    console.log(123);   //123
    
  • 相关阅读:
    eclipse使用egit提交代码报错
    JMeter使用代理录制脚本
    Jenkins搭建Windows slave 环境
    nmon在线安装及使用
    netstat 查看连接数
    Node.js安装及环境配置之Windows篇(转:https://www.cnblogs.com/zhouyu2017/p/6485265.html)
    HTTP状态码图示
    高并发带来的重复提交问题解决方案
    redis 主从备份自动切换+java代码实现类
    转:Redis 缓存策略
  • 原文地址:https://www.cnblogs.com/jianjie/p/12151703.html
Copyright © 2020-2023  润新知