var c = (1;); で "SyntaxError: Unexpected token ;"
var a = 1; var b = (1); var c = (1;); // c だけ "SyntaxError: Unexpected token ;" になる。 #JavaScript
2010-12-24 21:13:40@think49 これは「グループ化演算子の内部に単一の Expression を持たなければならないから」という理解であっているのだろうか? http://goo.gl/pLxPF
2010-12-24 21:14:27@think49 (;) でも "SyntaxError: Unexpected token ;" になる。根本的に理解が間違っていたらしい。
2010-12-24 21:34:14@think49 1 はNumberリテラルであり、PrimaryExpression -> Literal -> NumericLiteral である。つまり、Expression (式) の一種。 http://goo.gl/N15jd
2010-12-24 21:38:47@think49 ; は EmptyStatement であり、Statement (文) の一種。http://goo.gl/xkj5a
2010-12-24 21:40:12@think49 (;) を実行したとき、ECMAScript エンジンは Expression (式) があるべき場所に EmptyStatement という Statement (文) があるので "SyntaxError: Unexpected token ;" を返す。
2010-12-24 21:42:09@think49 var c = (1;); もそういうこと。グループ化演算子の内部に (NumericLiteral + EmptyStatement) があるので、SyntaxError を返す。
2010-12-24 21:45:14@think49 if (1) が通って、if (1;) で "SyntaxError: Unexpected token ;" を返す理由も同じ。
2010-12-24 21:47:42