zoukankan      html  css  js  c++  java
  • var a=b=5

    1.var a=b=5相当于拆解成var a=b; b=5;

    2.然后,b=5前面没有var,相当于声明为全局变量.

    3.所以就相当于:

            var b;

           (fun…{ var a=b; b=5; })();

           console.log(b); //5

           console.log(a); // Uncaught ReferenceError: a is not defined 报错

    ------------------------------

     

    1.(function(){

     

         alert(a);

     

         alert(b);

     

         var a=b=3;

     

         alert(a);

     

         alert(b);

     

       })();

     

       alert(a);

     

       alert(b);
    2. var a=b; b = 3; b是全局;
    3. 结果
       undefined,undefined,3,3,undefined,3;

     --------------------------------------------------------再加一题

    if(! "a" in window){
        var a = 1;
    }
    alert(a);
     
    解:
    if(! "a" in window)这句代码的意思是:判断全局对象window中是否有变量a,如果没有变量a,就进入判断将a赋值为1
    但是由于变量的提前声明,以上代码与如下代码等价:
    var a;
    if(!“a” in  window ){
        a=1;
    }
    alert(a);
    由于变量的提前声明特性,在执行这段代码之后,全局对象window中就已经存在a这个变量了
    所以不能进入判断,对a进行赋值
    所以a的值为undefined
  • 相关阅读:
    Lock和synchronized的区别和使用(转发)
    redis集群配置
    分布式之redis(转发)
    拉格朗日乘法与KKT条件
    骨骼动画原理
    常用非线性优化算法总结
    广义线性回归模型(三)
    线性模型、最优化方法(二)
    矩阵微分基础(一)
    OpenGL坐标系统
  • 原文地址:https://www.cnblogs.com/yanghai/p/14070855.html
Copyright © 2011-2022 走看看