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

    全局变量

    与某些编程语言不同,JavaScript并没有一种可以声明全局变量的关键字,有的只是全局变量的功能。

    • 在最外层的作用域,也就是windowvar声明的变量就是全局变量。

    • 在函数内部,不用关键字声明变量,直接赋值,这时也是个全局变量

    var a = 1;
    function bar(){
    	var a = 10;
    	function foo(){
    		console.log(a); // 10
    		console.log(window.a); // 1
    	}
    	foo()
    }
    bar();
    
    

    因为在最外层的变量,会被作为window的属性,前提是用var声明,这时候就算函数内部声明了相同的变量,依然可以通过window对象找到外部定义的变量,这就有了全局变量的功能。

    var b = 2;
    
    function bar(){
    	b = 10; //通过LHS引用的最外层的b,并赋值,这不是声明
    	d = 4; // 全局,作为window的属性
    	console.log(b); // 10
    }
    bar();
    console.log(b); // 10
    console.log(d); // 4
    

    这是因为不成功的LHS引用,在非严格模式下,会自己创建一个全局变量。如果是不成功的RHS引用就会直接报错。

    虽然这样也能声明,但最好不要,因为在严格模式下,是不允许不使用关键字就声明变量的。

    所以真的想要全局变量,请使用第一种方法。

    至于局部变量,那就多了,函数作用域和块作用域里声明的都是局部变量。

  • 相关阅读:
    页面渲染速度增加的方法和建议
    五(六)、Package & import
    五(五)、构造器 & JavaBean &this
    五(四)、封装性
    五(三)、方法
    五(二)、匿名对象
    五(一)、类&对象概述
    六、java 异常处理
    四、java 数组
    三、java 基础提炼
  • 原文地址:https://www.cnblogs.com/tourey-fatty/p/12112195.html
Copyright © 2011-2022 走看看