概念: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已经变成私有变量,外面是无法访问的~
}