-
[11.2.3]Function Calls 函数或方法调用
摘要:产生式为: CallExpression : MemberExpression Arguments,步骤:1、对MemberExpression求值得到引用ref2、调用GetValue(ref)得到引用的值func3、对Arguments求值得到argList4、func类型如果不是Object类型,抛异常5、如果IsCallable(func)为false,抛异常6、如果ref的类型为引用类型 a、如果IsPropertyReference(ref)为true thisValue = GetBase(ref) b、否则ref的Base是一个Environment Record 环境记录 t
阅读全文
-
[11.14]逗号操作符 ,
摘要:产生式: A,B 的求值步骤如下:1、对A求值获得引用lref2、调用GetValue(lref)3、对B操作数求值获得引用rref4、返回 GetValue(rref)注:GetValue()必须调用。=======逗号操作符会对每一个操作数都求值,但只返回最后一个表达式的 值
阅读全文
-
[11.13]赋值运算符
摘要:赋值运算符包括:*= /= %= += -= <<= >>= >>>= &= ^= |=一、简单赋值(=)赋值表达式 A = B的求值步骤:对A求值得到引用lref对B求值得到引用rref调用GetValue(rref)得到右侧操作数引用值rval如果下面几个条件全部满足则抛出一个SyntaxError异常: 1)Type(lref)为引用类型 2)IsStrictReference(lref)为true 3)Type(GetBase(lref)) 是一个环境记录 4)GetReferencedName(lref)是‘eval’或'ar
阅读全文
-
[11.11]二元逻辑操作符 && ||
摘要:一、产生式 A && B的求值步骤对A求值得到 引用lref调用GetValue(lref)获取引用值lval调用内部函数ToBoolean(lval),如果结果为false,返回 lval对B求值得到 引用rref返回GetValue(rref)二、产生式A || B的求值步骤对A求值得到引用lref调用GetValue(lref)获得引用值lval调用ToBoolean(lval),如果结果为true,返回lval对B求值得到引用rref返回GetValue(rref)二元逻辑操作符表达式的值并不一定是个boolean值,它的返回值是两个操作数之一。
阅读全文
|