js变量的作用域问题

1 var tt = 'www.cqcqing.com';
2 function test(){console.log(tt);} test();

控制台显示为:www.cqcqing.com

1 var tt = 'www.cqcqing.com';   
2     function test(){
3        console.log(tt);
4        var tt = 'www.cqcqing.com';
5        console.log(tt);    
6     }   
7     test();

控制台显示为:undefined      www.cqcqing.com

原理:js在访问一个变量时会优先在该作用域(访问时的那个作用域)内寻找是否声明过该变量,如果该变量已经存在,则直接使用它的值,否则它会寻找该作用域的‘父作用域/上级作用域’,以此类推,直到找到全局作用域为止。

 

posted @ 2017-02-06 16:15  彩泉  阅读(122)  评论(0编辑  收藏  举报