关于js的变量提升问题

1.关于变量提升;

例子一:console.log(a) //undifined;

var a=0;

例子二:

console.log(a)  //undifined;

if(true){

  var a=0;

}

console.log(a)  //0;

例子三:

console.log(a) //undifined;

if(!true){

  var a=0;

}

console.log(a) //undifined;

以上;只要js中声明了变量,不管什么条件,都会自动提升到代码最开始的位置;

迷惑烟雾弹

if(!("a" in window)){

  var a=0

}

console.log(a)//undifined;  第一还是变量提升;第二(“a” in window)为“true”

-------------------------------------------分割线----------------------------------------------------------------------

2.函数提升

console.log(f1) //function f1(){}

console.log(f2) //undifined;

function f1(){}  //函数会提升到文件最开始的位置

var f2=function(){} //变量会提升

猜你喜欢

转载自www.cnblogs.com/ladycat/p/10204697.html