JS中声明变量的细节问题

代码执行前操作

  1. 变量提升,针对 var/ function
  2. 词法解析,针对 let/ const; 不可以重复声明

变量提升区别

  1. var 只是提前声明,并没有提前赋值
  2. function 提前声明+赋值(也就是将变量和”值“关联)
    fn();
    function fn() {
        console.log(1);
    }
    // => 1 
    
    特别注意函数表达式的形式
    fn();
    
    function fn() {
        console.log(2);
    }
    fn();
    var fn = function() {
        console.log(1)
    }
    fn();
    
    function fn() {
        console.log(4)
    }
    fn();
    
    function fn() {
        console.log(5);
    }
    fn();
    // 输出 =>
    /**
     * 5
     * 5
     * 1
     * 1
     * 1
    */
    
慢慢来,比较快!基础要牢,根基要稳!向大佬致敬!
原文地址:https://www.cnblogs.com/rookie123/p/14288512.html