js的作用域

js的作用域

js的作用域分为二种:一是局部作用域,二是全局作用域。

局部作用域:作用于函数内部,如函数的形参,只在函数内部有效,在函数外无效。也称函数作用域。这里函数的形参也是局部变量

全局作用域:是作用于整个script标签的,但它与局部作用域不影响的,全局变量在		任何代码中都可以使用
	<script>
		//var a = 10;
		var b = 22;
			alert(a);  //10
		function fun (a) {   二者是不影响的
			var a = 20;
				alert (a);	//20
				console.log(b); //方法内也可以使用全局全局变量
		}	
<script>

还有一种全局变量就是未使用var关键字声明,也会造成全局变量
var a = b = c = 9; 可以分解为 var a = 9;b = 9; c = 9;这里b, 都为全局变量
var a =9,b = 9,c = 9;	分解为:var a=9;var b=9;var c=9;
	function fun () {
		x = 21; // 未使用var,造成全局变量
}
fun();
console.log(x);	//21  

全局作用域比较浪费资源,只有在浏览器关闭,全局变量才会释放资源。
局部作用域是在函数执行完后,局部变量就会释放资源。

ES6新增块级作用域

块级作用域里面的变量可以被外面调用。
if (3>2) {
var c = 9;

}
alert©; //9

作用域链:
var a = 22;
function fun() {
        var a = 10;
        function fu() {
            console.log(a);  //输出的结果为10
        }
        fu();
    }
    fun();
    
作用域链遵循就近原则,本层没找到就到上一层去找。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值