(精华)2020年6月29日 JavaScript高级篇 ES6(块级作用域)

1. 为什么要有块级作用域?

     // 内层的变量会覆盖外层的变量
    var a = '全局'
    function fn(){
        // 预编译 找var a
        // var a
        console.log(a); // undefined
        if(false){
            var a = '局部'
        }
    }
    fn()
    // 复习预编译的东西
    // 全局  函数作用  块级作用域(在各自的块干自己的事情 不影响)
    var a = '全局';
    (function(){
        var a = '局部'
        console.log(a);
        
    }())
    console.log(a)
     let a = '全局'
    {
        let a = '局部'
        console.log(a);
    }
    console.log(a);

2. 允许作用域的任意嵌套

    // 允许作用域的任意嵌套
    {
        {
            let b = '局部'
        }
        console.log(b); // b is not defined
    }
    {
        {
            let b = '局部'
            {
                console.log(b);
            }
        }
    }

3. 注意

    if(true){
        let x = 1;
    } // 不会报错

    if(true) let y = 2 // 会报错
    // Lexical declaration cannot appear in a single-statement context

你可能感兴趣的:(#,Javascript,高级篇,javascript,前端,es6)