【发布时间】:2013-01-14 19:15:26
【问题描述】:
var x=0, y=0;
var z=
x
++
++
y
注释说:
由于后缀递增/递减运算符(I/DO)和操作数之间的LineTerminator(LT)是不允许的,自动分号插入后两个引用之间用[LT]分隔的两个IO(就像两个DO及其组合)导致语法错误
为什么这段代码会导致语法错误?我认为这是一个有效的代码 sn-p。上面的代码等于var z=x; ++ ++ y;。表达式 ++ ++ y 是 allowed 由 javascript 语法。那么有什么问题呢?
【问题讨论】:
-
++ ++ y根本不允许! -
@Neal 但是这部作品
UnaryExpression : ++UnaryExpression呢? -
@sergeyz:作品并不是一切。你可以说这是一种运行时错误,但在编译时可以检测到,因为
++只能将引用作为其操作数,但永远不会产生一个。
标签: javascript parsing