javascript作用域

来源:互联网 发布:keep健身软件音乐 编辑:程序博客网 时间:2024/06/06 15:49

编译:(1)词法分析-----字符串->代码块(词法单元)。即调用有状态的解析规则;(2)语法分析--------数组->抽象语法树AST(由元素逐级嵌套);(3)代码生成----AST->可执行代码

javascript引擎查询变量方法:(1)LHS查询------查询变量容器本身(赋值操作目标)(2)RHS查询-----查询变量值(谁是赋值操作的源头)

异常:(1)无法查询到该变量:RHS一定抛出ReferenceError异常。LHS在非严格模式下会帮忙创建一个变量,严格模式下也会抛出异常。(2)查询到变量做了不合理操作:抛出TypeError异常。

function foo(a){var b=a;return a+b;}var c=foo(2);//所有的LHS查询(这里有三处)//c=..;  a=2(隐式变量分配)  b=...///所有的RHS查询(这里有四处)//foo(2....)  =a;   a....  ...b   

javascript引擎发展历程
1.遍历语法树
2.字节码
3.Direct Threading执行每一条指令直接跳到下一条要执
行的指令地址
4.JIT(即时编译)

作用域:

用于确定在何处以及如何查找变量(标识符)。如果查找的目
的时对变量进行赋值,进行LHS查询,如果目的是获取变量的
值,进行RHS查询



原创粉丝点击