zoukankan      html  css  js  c++  java
  • 为什么在js当中没有var就是全局变量

    因为,在js中,如果某个变量没有var声明,会自动移到上一层作用域中去找这个变量的声明语句,如果找到,就是用,如果没找到,

    就继续向上寻找,一直查找到全局作用域为止,如果全局中仍然没有这个变量的声明语句,那么自动在全局作用域进行声明,这个就

    是js中的作用域链,也叫变量提升

    代码示例如下:

    var data = 10;
    function fn1() {
        var data = 100;
        alert(data);//此时的data为100
        fn2();
        alert(data);   //此时的data为10000
        function fn2() {
            data = 1000;
            fn3();
            function fn3() {
                data = 10000;
            }
        }
    }
    fn1();
    console.log(data); //此时的data为10

    由此可知,上面代码中,fn1函数里面由于data用关键字var来声明了,所以这里面的data职能找到函数里面的最顶层的var data进行赋值替换,而不会影响到外面用var 来声明的data
  • 相关阅读:
    ASP.NET MVC HandleError异常过滤器过滤器用法
    ASP.NET MVC 4 过滤器(Authorize)
    ASP.NET MVC 4 过滤器(Authorize)
    蜜蜂路线
    1220 数字三角形
    Ⅳ.Catalan数
    10:单词排序
    09:明明的随机数
    07:合影效果
    08:病人排队
  • 原文地址:https://www.cnblogs.com/mmykdbc/p/6485984.html
Copyright © 2011-2022 走看看