zoukankan      html  css  js  c++  java
  • JavaScript中全局变量的深入探索

    01 a = "a";//隐式声明并初始化一个全局变量a
    02     function check(){
    03       a = "aa";//隐式改变全局变量a的值
    04       alert("局部:a = "+a);//提示"aa"
    05       if(a == "aa") {
    06         var b = "b";//定义局部变量b
    07         alert("局部:b = "+b);//提示"b"
    08       }
    09       alert("半局部: b = " + b);//和C、C++、Java不同,javascript没有块级作用域,
    10                                 //在函数中声明的所有的变量,无论是哪里声明的,在整个函数中都是有定义的。
    11                                 //提示"b"
    12     }
    13     check();//调用方法check()
    14     alert("全局:a = "+a);//提示的应该是全局变量a的当前值"aa"
    15     alert("全局:b = "+b);//全局变量未声明,所以不会有任何提示信息
    16  
    17      
    18     var scope = "globle";//声明一个全局变量
    19     function f() {
    20       alert(scope);//由于在方法f()中有变量scope的声明,则识别为局部变量,而提示scope的值在初始化之前,所以应该提示为undefined
    21       var scope = "local";//变量在此处初始化
    22       alert(scope);//显示"local"
    23     }
    24     f();//调用方法f()
    25      
    26     //你可能会认为第一次调用会显示出"global",因为声明局部变量的var语句还没有被执行。
    27     //但是,由于这个作用域规则的限制,输出的不是"globle"。局部变量在整个函数内部都是有定义的,
    28     //这就意味着在整个函数体中隐藏了同名的全局变量。虽然局部变量在整个函数体中都是定义的,
    29     //但是在执行var scope="local";语句之前,它是不会被初始化的。因此,上面的代码等价于:
    30     function f(){
    31       var scope;
    32       alert(scope);
    33       scope = "local";
    34       alert(scope);
    35     }

                                摘抄自:开源中国

  • 相关阅读:
    automl autodl
    《深入浅出图神经网络:GNN原理解析》
    学习数据科学的五大免费资源
    TensorFlow系列专题(十一):RNN的应用及注意力模型
    近期 github 机器学习热门项目top5
    近期 github 机器学习热门项目top5
    十 | 门控循环神经网络LSTM与GRU(附python演练)
    TensorFlow系列专题(九):常用RNN网络结构及依赖优化问题
    TensorFlow系列专题(八):七步带你实现RNN循环神经网络小示例
    TensorFlow系列专题(七):一文综述RNN循环神经网络
  • 原文地址:https://www.cnblogs.com/zp-xdzc/p/3242880.html
Copyright © 2011-2022 走看看