关于js的变量提升问题

Posted small_lady

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于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(){} //变量会提升

以上是关于关于js的变量提升问题的主要内容,如果未能解决你的问题,请参考以下文章

关于变量提升

js面试题,关于变量提升,作用域,全局变量

关于JS中变量提升的规则和原理的一点理解

js 预编译环节的变量提升

关于JS中变量提升的规则和原理的一点理解

js变量提升的坑