js的作用域深入理解

一.什么是作用域

作用域是指对某一变量和方法具有访问权限的代码空间,Javascript的作用域只有两种:全局作用域和本地作用域,本地作用域是按照函数来区分的(即全局变量和局部变量))

局部变量:只有局部能够访问的变量

例如:1.函数内部用var定义的变量  2.for循环的的时候遍历是用到的变量i

全局变量:在script标签内的任何位置都可以调用

var num=34;//全局变量
		function(){
			var num2=30;//局部变量
			var num3=num;//局部变量
		}

  但是全局变量中还有个特殊的,就是隐式全局变量:

 //隐式全局变量
    function fn(){
        //b和c都是隐式全局变量
        var a = b = c = 1;
        //e和f都是隐式全局变量(分号相当于换行)
        var d = 1;e =2;f=3;
        //g和i都不是隐式全局变量
        var g = 1,h= 2,i=3;
    }

    fn();

  说白了就是,在函数里面,就看他是否带了var声明,如果没有带var声明的话,那么它就是全局变量,不过这种方法不推荐使用

原文地址:https://www.cnblogs.com/cythia/p/6634428.html