美文网首页1000天日更计划
Day14:词法作用域

Day14:词法作用域

作者: 钱塘风华 | 来源:发表于2019-04-07 22:43 被阅读0次

    【书名】:你不知道的JavaScript(上卷)

    【作者】:Kyle Simpson

    【本书总页码】:213

    【已读页码】:32

    词法化的过程会对源代码中的字符进行检查,如果是有状态的解析过程,还会赋予单词语义。简单地说,词法作用域就是定义在词法阶段的作用域。换句话说,词法作用域是由你在写代码时将变量和块作用域写在哪里来决定的,因此当词法分析器处理代码时会保持作用域不变(大部分情况下是这样的)。

    作用域查找会在找到第一个匹配的标识符时停止。在多层的嵌套作用域中可以定义同名的标识符,这叫作“遮蔽效应”(内部的标识符“遮蔽”了外部的标识符)。

    全局变量会自动成为全局对象(比如浏览器中的 window 对象)的属性,因此可以不直接通过全局对象的词法名称,而是间接地通过对全局对象属性的引用来对其进行访问。通过这种技术可以访问那些被同名变量所遮蔽的全局变量。但非全局的变量如果被遮蔽了,无论如何都无法被访问到。

    函数的词法作用域都只由函数被声明时所处的位置决定。

    词法作用域查找只会查找一级标识符。如果代码中引用了 foo.bar.baz,词法作用域查找只会试图查找 foo 标识符,找到这个变量后,对象属性访问规则会分别接管对 bar 和 baz 属性的访问。

    相关文章

      网友评论

        本文标题:Day14:词法作用域

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