4.作用域

```

// ES5 中作用域

const callbacks = []

for (var i = 0; i <= 2; i++) {

    callbacks[i] = function() {

        return i * 2

    }

}

console.table([

    callbacks[0](),

    callbacks[1](),

    callbacks[2](),

])

const callbacks2 = []

for (let j = 0; j <= 2; j++) {

    callbacks2[j] = function() {

        return j * 2

    }

}

console.table([

    callbacks2[0](),

    callbacks2[1](),

    callbacks2[2](),

])

;((function() {

    const foo = function() {

        return 1

    }

    console.log("foo()===1", foo() === 1)

    ;((function() {

        const foo = function() {

            return 2

        }

        console.log("foo()===2", foo() === 2)

    })())

})())

{

    function foo() {

        return 1

    }

    console.log("foo()===1", foo() === 1)

    {

        function foo() {

            return 2

        }

        console.log("foo()===2", foo() === 2)

    }

    console.log("foo()===1", foo() === 1)

}

```

在es3 、es5中需要使用立即执行函数 (function(){})() 来对作用域进行隔离 , 而es6中只需要用 {} 花括号就可以隔离 

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 7,895评论 0 3
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 6,179评论 0 2
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,714评论 0 13
  • 用更合理的方式写 JavaScript 目录 声明变量 对象 数组 字符串 函数 箭头函数 模块 迭代器和生成器 ...
    小红依阅读 5,792评论 0 5
  • (a fork of Airbnb's Javascript Style Guide) Strikingly ES...
    飘零_zyw阅读 4,902评论 1 2

友情链接更多精彩内容