• 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
  • 相关阅读:
    图论专题1考试Problem1
    React 创建对话框组件
    React中防止字符转义
    JSX添加注释
    redux和react-redux在react中的使用
    动手实现 React-redux(三) Provider
    动手实现 React-redux(二) mapDispatchToProps
    动手实现 React-redux(一) connect 和 mapStateToProps
    Redux架构模式
    React context(不使用props,父组件给子组件传递信息)
  • 原文地址:https://www.cnblogs.com/minozMin/p/8022869.html
Copyright © 2020-2023  润新知