body{ cursor: url("https://images.cnblogs.com/cnblogs_com/szqblog/1889956/o_201130135019Cursor.png"), auto; }

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
posted @ 2020-12-01 21:26  1234前来报到  阅读(885)  评论(0编辑  收藏  举报