用户登录
用户注册

分享至

关于js作用域变量和函数声明提升的总结

  • 作者: 爸爸说我不省心--
  • 来源: 51数据库
  • 2021-08-17
    var a = 1;

    function a() {
      console.log(3);
    }

    console.log(a); // 1
    a();            // 报错
    var a;

    function a() {
      console.log(2);
    }

    console.log(a); // 打印函数体
    a();            // 2

一:

预解析时,函数声明创建的函数整体会提升到所在执行环境【作用域】的顶部,

函数表达式创建的函数,仅仅提升变量名到所在执行环境【作用域】的顶部。

二:

当函数声明和变量声明同时存在时,函数声明的优先级更高;

当变量声明但没有赋值并且函数名和变量名一致时,此名称仍指向函数;

当变量名赋值且函数名和变量名一致,此名称指向变量,函数被取代,

软件
前端设计
程序设计
Java相关