欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

词法作用域

程序员文章站 2022-04-15 20:19:54
1、概念 词法作用域:定义在词法阶段的作用域,即书写代码时函数声明的位置决定的。词法分析器处理代码时会保持作用域不变(大部分是这样的),会知道全部标识符在哪里以及如何声明的,从而预测在执行过程中如何对他们进行查找。 示例代码: 2、作用域查找 作用域会在找到第一个标识符时停止,存在“遮蔽效应”。 3 ......

1、概念

词法作用域:定义在词法阶段的作用域,即书写代码时函数声明的位置决定的。词法分析器处理代码时会保持作用域不变(大部分是这样的),会知道全部标识符在哪里以及如何声明的,从而预测在执行过程中如何对他们进行查找。

示例代码:

 

<!DOCTYPE html>
<html lang="zh">

    <head>
        <meta charset="UTF-8" />
        <title>词法作用域</title>
    </head>

    <body>

        <script type="text/javascript">
            function foo() {
                console.log(a);
            }

            function bar() {
                var a = 3;
                foo();
            }
            var a = 2;
            bar();//输出2
        </script>
    </body>

</html>

 

 

 

 

2、作用域查找

作用域会在找到第一个标识符时停止,存在“遮蔽效应”。

 

3、欺骗词法

(1)eval

(2)with

欺骗词法不是好主意,会导致性能下降,不要使用他们。