1. 程式人生 > >Javascript 塊級作用域

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語句劫持這個塊,才會建立塊級作用域。