js变量和函数提升

写在前面:

变量提升是 声明提升,初始化不会提升,比如说

var a=1;
console.log(a);

  

实际是这样执行(个人理解,仅供参考)

var a;
console.log(a);
a=1;

以下控制台输出undefined;证明是被提升,如果声明未被提升,会报错

    console.log(a);
    var a= 1;

函数提升同理,函数整个代码块提升,同样测试被复制的变量是不会提升

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

  

原文地址:https://www.cnblogs.com/no000000/p/12268246.html