美文网首页
7、变量提升的处理机制(2)

7、变量提升的处理机制(2)

作者: 自己写了自己看 | 来源:发表于2021-01-08 16:13 被阅读0次

    1、条件判断下的变量提升:
    EC(G)全局上下文中的变量提升, 条件中带 function 的在新版本浏览器中只会
    提前声明,不会再提前赋值了;
    【老版本】:
    var a;
    func = 函数;
    【新版本】:
    var a;
    func;

    if (!('a' in window)) {
         var a = 1;
         function func() {}
    }
    console.log(a);  // undefined
    
    fn();  // 5
    
    function fn() {
        console.log(1)
    }
    fn();  // 5
    
    function fn() {
        console.log(2)
    }
    fn();  // 5
    
    var fn = function() {
        console.log(3)
    }
    fn();  // 3
    
    function fn() {
        console.log(4)
    }
    fn();  // 3
    
    function fn() {
        console.log(5)
    }
    fn()  // 3
    
    var foo = 1
    
    function bar() {
        //  无论条件是否成立,变量都会提前声明 
        if (!foo) {
            var foo = 10
        }
        console.log(foo)  // 10
    }
    bar()
    

    相关文章

      网友评论

          本文标题:7、变量提升的处理机制(2)

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