在JavaScript中的变量的作用域

   任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。今天我们来看看在JavaScript中的变量的两种作用域。

  全局作用域:

    在代码中任何地方都能访问到的对象拥有全局作用域;

    

 1、在最外层函数外面定义的变量拥有全局作用域

 

 1 //在最外层函数外面定义的变量拥有全局作用域
 2  var authorName="我的梦想";//全局变量
 3     function doSomething(){
 4         var blogName="飞往太空";//局部变量
 5         function innerSay(){
 6             alert(authorName+""+blogName);
 7         }
 8        return innerSay();
 9     }
10     alert(authorName);  //我的梦想
11 doSomething();   //我的梦想是飞往太空

 

  2、所有末定义直接赋值的变量自动声明为拥有全局作用域

1  function doSomething(){
2         var authorName="我的梦想";
3         blogName="飞往太空";
4         alert(authorName+""+blogName);
5     }
6     doSomething();      //我的梦想是飞往太空
7     alert(blogName);    //飞往太空
8     alert(authorName);  //authorName 找不到

  3、所有window对象的属性拥有全局作用域

  一般情况下,window对象的内置属性都拥有全局作用域,例如window.name、window.location、window.top等等。

  

  局部作用域

  局部作用域一般只在固定的代码片段内可访问到,最常见的例如函数内部,所有在一些地方也会看到有人把这种作用域称为函数作用域。

  

  例如:下列代码中的blogName和函数innerSay都只拥有局部作用域

function doSomething(){
        var blogName="我的梦想";
        function innerSay(){
            alert(blogName);
        }
        innerSay();
    }
    alert(blogName); //脚本错误(blogName未找到)
    innerSay(); //脚本错误( innerSay未找到)

  此内容是通过我翻阅资料整理来的,如有不足望大神们多多补充!!!

 

posted @ 2017-06-25 22:09  那一刻~~~掩护你  阅读(231)  评论(0)    收藏  举报