zoukankan      html  css  js  c++  java
  • JavaScript全局变量与局部变量

    JavaScript中存储数据值的容器称为变量。根据变量作用域可将变量分为全局变量局部变量

    全局变量(Global Variable)

    拥有全局作用域,在JavaScript代码中任何地方都有定义的变量,称为全局变量。通过var声明在函数外部的变量为全局变量。JavaScript全局变量是全局对象的属性,这是ECMAScript规范中强制规定的。在Web浏览器中,全局作用域对象为window。

    定义全局变量的方法:

    方法1:任何函数体外直接声明var声明变量

        //方法1:任何函数体外直接声明var声明变量
        var a = 10;
        var b; 

    方法2:直接添加属性到全局对象上。

        //方法2:直接添加属性到全局对象上。在 Web 浏览器中,全局作用域对象为 window。
        window.f = "function";

    方法3:直接使用未经声明的变量,以这种方式定义的全局变量被称为隐式的全局变量。

        //方法3:直接使用未经声明的变量,以这种方式定义的全局变量被称为隐式的全局变量。
        c = "golbal"; 

    局部变量(Local Variable)

    通过关键字var声明在函数内部的变量,只在函数体内有定义,是局部变量。局部变量在函数体外是不可见的,在作用域外引用会抛出引用错误(ReferenceError)异常。

        function f(){
          var number=10;
        }
        console.log(number);//=>Uncaught ReferenceError: number is not defined
    

      

    在函数体内,局部变量的优先级高于全局变量。如果在函数内声明的一个局部变量或者函数参数中带有的变量和全局变量重名,那么全局变量就被局部变量所遮盖。这种情况时由于JavaScript作用域链导致的。

        var a="global";
        function f(){
          var a="local";
          console.log(a);
        }
        f();//=>打印"local"

    参考资料:

    《JavaScript权威指南》变量作用域_P56

  • 相关阅读:
    【Android 工具类】经常使用工具类(方法)大全
    driver: Linux设备模型之input子系统具体解释
    ural 1057 Amount of degrees 【数位dp】
    Java8 Lambda表达式教程
    Java线程池
    NodeJS实战——创建基础应用并应用模板引擎
    【网络】代理服务器
    【HTTP】Wireshark过滤规则
    【HTTP】WireShark中获取Content-Encoding: gzip时的响应内容
    【python】判断字符串日期是否有效
  • 原文地址:https://www.cnblogs.com/f6056/p/11813986.html
Copyright © 2011-2022 走看看