美文网首页
js的作用域

js的作用域

作者: bug喵 | 来源:发表于2017-09-10 14:05 被阅读0次

    1.es5时代

    es5时,JavaScript只有两个作用域:1.全局作用域;2.函数作用域。

    (1) 全局:在es5中在函数外定义的(或在函数内但没有用关键字var赋值)变量均是全局变量。它们所处的作用域即全局作用域。

    (2) 函数:在es5中,定义在函数内部用var定义的变量,所在的作用域为函数作用域。

    (3)es5利用函数闭包,也可以模仿块级作用域。

    2.es6时代

    es6出来后,JavaScript有了三个作用域:1.全局作用域;2.函数作用域;块级作用域。

    (1) es6出来后,全局变量和函数变量依然存在,最重要的是,有了块级作用域,即用let和const定义变量。

    (2)有了块级作用域后,可以有效防止变量重命名,防止变量污染。

    (3)let与const均为块级作用域,均不可重复命名。但const赋值的是常量,之后不可修改,let赋值的是变量。所以我们首推用const,在确定是变量时才用let。这样一是防止比变量被无意间修改(会有报错提示),二来符合函数式编程的理念,即不去改变值,只生成新的值(React中推崇函数式编程)。

    相关文章

      网友评论

          本文标题:js的作用域

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