美文网首页
JS作用域的理解

JS作用域的理解

作者: 小翼_b998 | 来源:发表于2017-10-25 11:26 被阅读0次

    什么是作用域?

    作用域是你的代码在运行时,各个变量、函数和对象的可访问性。换句话说,作用域决定了你的代码里的变量和其他资源各个区域中的可见性。

    JavaScript中的作用域

    在 JavaScript 中有两种作用域:

    全局作用域

    局部作用域

    当变量定义在一个函数中时,变量就在局部作用域中,而定义在函数之外的变量则从属于全局作用域。每个函数在调用的时候会创建一个新的作用域。

    全局作用域

    当你在文档中(document)编写 JavaScript 时,你就已经在全局作用域中了。JavaScript 文档中(document)只有一个全局作用域。定义在函数之外的变量会被保存在全局作用域中。

    全局作用域里的变量能够在其他作用域中被访问和修改。

    局部作用域

    定义在函数中的变量就在局部作用域中。并且函数在每次调用时都有一个不同的作用域。这意味着同名变量可以用在不同的函数中。因为这些变量绑定在不同的函数中,拥有不同作用域,彼此之间不能访问。

    块语句

    块级声明包括if和switch,以及for和while循环,和函数不同,它们不会创建新的作用域。在块级声明中定义的变量从属于该块所在的作用域。

    上下文

    很多开发者经常弄混作用域和上下文,似乎两者是一个概念。但并非如此。作用域是我们上面讲到的那些,而上下文通常涉及到你代码某些特殊部分中的this值。作用域指的是变量的可见性,而上下文指的是在相同的作用域中的this的值。我们当然也可以使用函数方法改变上下文,这个之后我们再讨论。在全局作用域中,上下文总是 Window 对象。

    参考文献:理解 JavaScript 作用域

    相关文章

      网友评论

          本文标题:JS作用域的理解

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