美文网首页
变量提升和函数提升

变量提升和函数提升

作者: Marshall3572 | 来源:发表于2021-04-08 16:53 被阅读0次

    变量提升

    所谓变量提升,就是变量的声明在执行前会被提升到改作用域顶部。

    a = 2;
    console.log(a);
    var a'
    

    代码在执行前会被处理成如下形式:

    var a; //变量声明被提升到该作用域顶部
    a = 2;
    console.log(a);
    

    函数提升

    参考变量提升

    sayHello(); 
    function sayHello () {
      console.log('hello');
    }
    

    代码在执行前会被处理成如下形式:

    function sayHello () {
      console.log('hello');
    }
    sayHello(); 
    

    变量声明与函数声明的比较

    var a;
    function a () {
      console.log('函数a');
    }
    console.log(a);   
    function b () {
      console.log('函数b');
    }
    var b;
    console.log(b);
    

    代码在执行前会被处理成如下形式:

    function a () {
      console.log('函数a');
    }
    function b () {
      console.log('函数b');
    }
    console.log(a);   
    console.log(b);
    

    这说明函数声明优先级高于变量声明优先级

    函数声明和函数赋值给变量的区别

    var a;
    console.log(a);
    a = function(){
      console.log('函数a');
    }
    var b;
    console.log(b);
    function b(){
      console.log('函数a');
    }
    

    代码在执行前会被处理成如下形式:

    var a;
    function b(){
      console.log('函数a');
    }
    console.log(a);
    a = function(){
      console.log('函数a');
    }
    console.log(b);
    

    参考文章

    相关文章

      网友评论

          本文标题:变量提升和函数提升

          本文链接:https://www.haomeiwen.com/subject/uwjvkltx.html