美文网首页
你不知道的Javascript(上)-第一章

你不知道的Javascript(上)-第一章

作者: KiiMiiLii | 来源:发表于2018-06-30 14:03 被阅读0次

    第一章 作用域是什么

    用来存储变量的一套规则,使变量被方便的找到

    1. 编译的大致过程
    • 分词/词法分析

    分词:将字符串分析为词法单元var a=2; => (var,a,=,2,;)

    词法分析:判断词法单元是独立的还是居于其他词法单元的一部分

    • 解析/语法分析

    将词法单元转化为一个由元素逐级嵌套所组成的语法结构树—抽象语法树(Abstract Syntax Tree)

    • 代码生成

    将AST转化为可执行代码

    1. 编译器在作用域中的两种查找方式
      LHS:变量出现在赋值操作的左侧进行的查询,找到操作目标;
      RHS:变量出现在赋值操作的非左侧进行的查询,去溯源;
      L和R的理解:赋值操作的左侧或右侧。
    function foo(a){
    var b=a;
    return a+b;
    }
    var c=foo(2);
    

    有三处LHS:var c=foo(2),var a=2,var b=a
    有四处RHS:foo(2),a(var b=a),a(a+b),b(a+b)

    1. 作用域的嵌套—作用域链

    当一个块或者函数嵌套在另一个块或者函数中时,就发生了作用域的嵌套。在当前作用域中无法找到某个变量的时候,就会去外层嵌套的作用域中继续查找,直到找到该变量或抵达最外层的作用域(全局作用域)为止。

    相关文章

      网友评论

          本文标题:你不知道的Javascript(上)-第一章

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