变量提升

2019-03-12  本文已影响0人  书简_yu

变量提升 Hoisting

变量和函数的声明会在编译时被提升到作用域的顶部

提升的是声明,函数会连带函数体提升

var a = 2;

var a;

console.log(a);  // 2
function foo(){
    
    console.log(1);
}

var foo;

foo();  // 1
foo();  // 1

function foo(){
    
    console.log(1);
}

var foo = 2;
foo();  // 2
 
var foo = 1;

function foo(){
    
    console.log(1);
}

function foo(){
    
    console.log(2)
}

if中的声明也会被提升,函数会被提升为undefined

console.log(foo, a);  // undefined undefined

if(true){
    
    var a = 1;
    
    function foo(){
        
        console.log(1)
    }
}else{
    
    var b = 2;
    
    function foo(){
        
        console.log(2)
    }
}

关于JS里面的函数优先

变量提升

上一篇 下一篇

猜你喜欢

热点阅读