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
  • 相关阅读:
    伪类选择器
    子元素和后代元素选择器
    常用的选择器
    CSS语法
    javascript中caller和callee call和apply
    我的第一篇
    Python— isinstance用法说明
    Python—对Excel进行读写操作
    RAID5,RAID10磁盘的创建
    vi/vim编辑器用法
  • 原文地址:https://www.cnblogs.com/yanghai/p/14070855.html
Copyright © 2011-2022 走看看