Javascript 作用域

时间:2014-06-25 22:32:07   收藏:0   阅读:300

  Javascript的作用域并不像想象中的简单,一开始的时候我都懒得去认真了解关于这方面的介绍,除了注意全局变量和局部变量定义时都要加上 var ,其他的总想着跟强类型语言差不多,而且在实践中也没有发现什么问题,现在抽空对这方面做一些总结,希望以后减少在这方便所犯的错误。

错误的方式:  

1 function test(){
2     a = 2;//作用域是全局            
3 }
4 console.log(a);//2

正确的方式:

function test(){
    var a = 2;//作用域是函数内    
}
console.log(a);//undefined

 

错误的方式:

var a = 1;
function test(){
    console.log(a); //undefined,函数内部,a 在下一句被重新定义,它覆盖了函数外的a,此时它在函数内部全局可见,但是在运行到当前语句时a还未赋值,所以它的值是undefined。
    var a = 0;    
}

正确的方式:

var a = 1;
function test(){
    var a = 0;
    console.log(a); //0,已经定义且赋值。
}
function test(){
    //这里的i是test函数的局部变量
    for(var i = 0; i<10; i++){
         if(true){
              var j = i;// j 也是test函数的局部变量!
         }
    }
    console.log(i);// 10
    console.log(j);// 9
} 

 

 

Javascript 作用域,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!