• 在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未找到)

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

  • 相关阅读:
    hibernate--could not initialize proxy
    20160509-hibernate--继承映射
    CF1111C Creative Snap
    CF1097D Makoto and a Blackboard
    CF1091D New Year and the Permutation Concatenation
    CF1096D Easy Problem
    CF1076E Vasya and a Tree
    CF1081C Colorful Bricks
    CF1081E Missing Numbers
    CF1093D Beautiful Graph
  • 原文地址:https://www.cnblogs.com/yhyanjin/p/7078213.html
Copyright © 2020-2023  润新知