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

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

  • 相关阅读:
    Elasticsearch 索引操作
    windows curl命令
    Elasticsearch简介
    ElasticSearch插件安装
    SignalR实时聊天功能
    原来现在很多人都用SignalR来实现Chat Room
    设计模式(六)(Command Pattern)命令模式
    FtpWebRequest FTP异步下载、异步上传文件
    FTP规范
    oracle组建:ODAC112021Xcopy_x64,在开发机上,不用安装oracle的客户端等开发
  • 原文地址:https://www.cnblogs.com/yhyanjin/p/7078213.html
Copyright © 2020-2023  润新知