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
    */
    
posted @ 2021-01-17 11:40  HelloCoderRookie  阅读(65)  评论(0编辑  收藏  举报