美文网首页
块级作用域

块级作用域

作者: 刘昱涵 | 来源:发表于2018-11-16 00:32 被阅读0次

    在ES6中允许块级作用域的任意嵌套。外层作用域无法读取内层作用域的变量。

    {
    {let i = 1;}
    console.log(i);
    }

    在这里因为i是在内层作用域被定义,外面无法读取,所以这里会报错

    内层作用域可以定义外层作用域的同名变量

    {
    let i = 1
    {let i= 2}
    }

    if语句和for语句里面的{ }也属于块作用域

    for(let i = 0; i < 4; i++) {
    let d = 5;
    };
    console.log(i);
    console.log(d);

    这里也是因为块作用域的原因导致发生错误

    总的来说块作用域的主要作用就是防止外部访问到内部的变量

    防止变量提升导致内层变量可能会覆盖外层变量

    var i = 5;
    function func() {
    console.log(i);
    if (true) {
    var i = 6;
    }
    }
    func(); // undefined

    防止用来计数的循环变量泄露为全局变量

    for (var i = 0; i < 10; i++) {
    console.log(i);
    }
    console.log(i); // 10

    相关文章

      网友评论

          本文标题:块级作用域

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