词法作用域

词法作用域

上一篇中提到,我们把“作用域”定义为一套规则,这套规则用来管理引擎如何在当前作用域以及嵌套的子作用域中根据标识符名称进行变量查找。这一篇文章就来了解下 词法作用域

1 词法作用域说明

作用域共有两种主要的工作模型,第一种是最为普遍的,也是 javascript 所使用的为 词法作用域。另外一种叫做 动态作用域 我们这边就不讨论了。

Javascript 在编译的时候会对源代码中的字符进行检查,如果是有状态的解析过程,还会赋予单词语义,即赋值。

这个概念是理解词法作用域及其名称来历的基础。

2 词法阶段

那就很好的理解这句话了,无论函数在哪里被调用,也无论它如何被调用,它的词法作用域都只由函数被声明时所处的位置决定。这种行为是由于 javascript 作用域所采用的工作模式是词法作用域所产生的。

3 小结

简单的说词法作用域就是定义在词法阶段的作用域。换句话说,词法作用域是由你在写代码时将变量和块作用域写在哪里来决定的,因此当词法分析器处理代码时会保持作用域 不变(大部分情况下是这样的)。

也就是说,作用域在编译的时候已经确定了,每个变量已经完成了赋值。

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2019-2020 我爱吃包子
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信