美文网首页
JavaScript作用域:Scope

JavaScript作用域:Scope

作者: fanren | 来源:发表于2022-10-24 10:25 被阅读0次

    前言:什么是Scope?

    Scope其实就是,代码在运行时,代码中的变量或者函数的可访问性;

    Scope决定了变量或者函数,在哪些地方可以被访问,哪些地方不可以访问;

    一、全局作用域

    在任何地方都可以被访问的变量,就拥有全局作用域,这个变量也被称为“全局变量”

    // 全局变量
    const name = "zs";
    export default {
      created() {
        console.log('created', name);
      },
      mounted() {
        console.log('mounted', name);
      },
    };
    
    结果

    name变量是全局变量,可以再任何地方被访问

    二、局部作用域

    局部作用域,是只能在某些特定的代码片段内被访问,例如函数内部;

    export default {
      created() {
        // 局部变量
        let name = "zs"
        console.log('created', name);
      },
      mounted() {
        // 不可以访问name变量
        console.log('mounted', name);
      },
    };
    
    结果

    created方法中声明的变量name是局部变量,只能在created方法中访问,不能在其他方法内访问(例如mounted)

    三、块级作用域

    块级作用域,只有在块{}的内部才可以被访问;

    export default {
      mounted() {
        let result = true;
        if (result) {
          // 块级作用域
          let name = "zs"
          console.log(name);
        }
        console.log('create', name);
      },
    };
    
    结果

    name变量在块级作用域内,所以只能在if内部被访问,不能被块外部访问;

    只有let、const声明的变量才有会计作用域,而var声明的变量是没有块级作用域的

    相关文章

      网友评论

          本文标题:JavaScript作用域:Scope

          本文链接:https://www.haomeiwen.com/subject/nszwzrtx.html