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
  • 相关阅读:
    vue数组和对象不能直接赋值
    数组内部的对象监听问题
    vue知识点(工作中遇到)
    Array数组
    js对象操作
    Vue-router
    sublime text 3 常用插件 —— SFTP
    Python中的线程和进程
    python中的sockeserver模块简单实用
    python利用socket写一个文件上传
  • 原文地址:https://www.cnblogs.com/minozMin/p/8022869.html
Copyright © 2011-2022 走看看