Javascript 块级作用域

1. ES3 块级作用域

ES3的with语句,try__catch语句的catch子句在执行时自动创建一个块级作用域。

 		var obj = {
 			name: "obj";
 		}
 		var name = "global";
 		function test() {
 			var name = "local";
 			/*创建一个块级作用域,对象的属性作为块级作用域Block的属性,内部会有
 			一个对象属性与Block属性的映射关系,保证两边同步修改,但是如果Block中
 			不存在这个变量(对象属性)时,会沿着词法作用域链向上查找,如果找不到,
 			会创建一个暗示全局变量,ES5严格模式已经禁止使用with语句。
 			*/
 			with(obj) {
 				console.log(name);//Block块上的name
 				age = 30 //创建暗示全局变量
 			}
 		}

2. ES6 块级作用域

 使用{}声明一个语句块,并使用let语句劫持这个块,才会创建块级作用域。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值