46-函数中变量作用域

  • 在JavaScript中 {} 外面的作用域, 我们就称之为全局作用域
  • 在JavaScript中函数后面的{}中的作用域, 我们就称之为局部作用域
  • 在ES6中只要{}没有和函数结合在一起,而是和其他含{}的语句在一起(如if(){}语句), 那么就称之为块级作用域
          // 块级作用域
          if(){
    
          }
          switch () {
    
          }
          while (){
    
          }
          do {
    
          }while ();
          for (;;){
    
          }
    
  • 块级作用域和局部作用域的区别
    • 在块级作用域中通过 var 定义的变量是全局变量

          {
              // 块级作用域
              var num = 123;  // 全局变量
          }
          console.log(num);
      
    • 在局部作用域中通过 var 定义的变量是局部变量

          function test() {
              var value = 666;    // 局部变量
          }
          test(); // 不管调不调用函数, 这里都访问不了value
          console.log(value);
      
  • 无论是在块级作用域还是在局部作用域中, 省略变量前面的let或者var就会变成一个全局变量
    • 注意点: 在企业开发中一定不要省略大括号

              // var num = 678;   // 全局变量
              // let num = 678;  // 局部变量
              num = 678;  // 全局变量
          }
          console.log(num);
      
          function test() {
              // var num = 123;  // 局部变量
              // let num = 123;  // 局部变量
              num = 123;  // 全局变量
          }
          test();
          console.log(num);
      
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容