变量提升

136 阅读1分钟

什么是变量提升(声)?

在代码执行之前,JS会把代码中带var和带function的提前声明

带var的是只声明不定义,带function的是声明又定义 变量提升只提升等号左边的部分

变量提升对于条件来说,不管是否成立,都会进行变量提升,在条件句或者循环句中function声明,高版本浏览器是只声明不定义的

 console.log(qqq)
    console.log(f()) // 该 f 是变量提升阶段确定下来的函数  222
    var f = function qqq () {
        console.log(111)
    }
    console.log(f()) // 该 f 是从新赋过值的函数   111
    function f(){
        console.log(222)
    }
    console.log(f()); // 由于变量提升阶段已经定义了 f; 所以上边的function f 就不执行了; 111