您的位置:首页 > Web前端 > JavaScript

javaScript没有块级作用域

2013-08-03 21:51 295 查看
1.如下,变量i,j,k 的作用域是相同的。

function test(obj){
var i= 0;
if(typeof obj == "object"){
var j = 0;
for(var k = 0; k< 1; k++){
document.write(k);
}
document.write(k);
}
document.write(j);

}


2.将变量放置在函数开关是好的编程习惯

var scope = "global";
function f(){
alert(scope);       //undefined
var scope = "local";
alert(scope);       //local
}


这两个效果相同

var scope = "global";
function f(){
var scope;
alert(scope);    //undefined
scope = "local";
alert(scope);    //local
}


3.今天遇到奇怪的问题

(function(){
var a = false;

b = function(){
a = 1;
}
b();
alert(a);                                  //弹出1
})();

(function(){
var a = false;

b = function(){
var a = 1;        //函数作用域
}
b();
alert(a);               //弹出false
})();
(function(){
var a = false;
if(true){          //没有块作用域
var a = 1;
}
alert(a);            //弹出1

})();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: