块级作用域

概念:JS中没有块级作用域这一概念,即在块语句中定义的变量,实际上是包含函数中而非语句中创建的:

function outputNumber(count){
	for (var i = 0; i < count.length; i++) {
		alert(i); //1 2 3 4 5
	};
	alert(i); //5
}

//在这里i并不是只能在for语句中使用,而且在整个outputNumber()函数体内都能访问;

function outputNumber(){
	(function(){ //这里创建了一个块级作用域
		for (var i = 0; i < count; i++) {
			alert(i);
		}
	})();
	alert(i);//出错了~这里的i已经变成私有变量,外面是无法访问的~
}

原文地址:https://www.cnblogs.com/lisa2544/p/5512972.html