zoukankan      html  css  js  c++  java
  • js作用域

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

    1、全局作用域:

    在代码中任何地方都能访问到的对象拥有全局作用域,一般来说以下几种情形拥有全局作用域:

      (1)最外层函数和在最外层函数外面定义的变量拥有全局作用域,例如:

    var authorName="";
    function doSomething(){
        var blogName="";
        function innerSay(){
            alert(blogName);
        }
        innerSay();
    }
    alert(authorName);     //minoz
    alert(blogName);     //not defined
    doSomething();    //minozMin
    innerSay();     //not defined

      (2)所有末定义直接赋值的变量自动声明为拥有全局作用域,例如:

    function doSomething(){
        var authorName="minoz";
        blogName="minozMin";
        alert(authorName);
    }
    doSomething();     //minoz
    alert(blogName);     //minozMin
    alert(authorName);     //not defined

        变量blogName拥有全局作用域,而authorName在函数外部无法访问到。

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

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

    2、局部作用域:

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

    function doSomething(){
        var blogName="minozMin";
        function innerSay(){
            alert(blogName);
        }
        innerSay();
    }
    alert(blogName);     //not defined
    innerSay();     //not defined
  • 相关阅读:
    添加远程库
    Git远程仓库
    Git 删除文件
    Git撤销暂存区stage中的内容
    Git 暂存区的概念
    Git add和commit步骤分析
    2017CCPC秦皇岛 E题String of CCPC&&ZOJ3985【模拟】
    2017CCPC秦皇岛 C题Crusaders Quest&&ZOJ3983【模拟+STL】
    2017CCPC秦皇岛 L题One-Dimensional Maze&&ZOJ3992【模拟】
    HDU2444 The Accomodation of Students【匈牙利算法】
  • 原文地址:https://www.cnblogs.com/minozMin/p/8022869.html
Copyright © 2011-2022 走看看