訳の正確性を保証するものではありませんので必要に応じて原文であるEcma InternationalのECMA-262にある ECMA-262.pdf ( ECMA-262 5.1 Edition )を参照下さい。
訳:2012年04月 webzoit.net
【構文】 ConditionalExpression : LogicalORExpression LogicalORExpression ? AssignmentExpression : AssignmentExpression ConditionalExpressionNoIn : LogicalORExpressionNoIn LogicalORExpressionNoIn ? AssignmentExpression : AssignmentExpressionNoIn
【セマンティックス】 プロダクション
ConditionalExpression : LogicalORExpression ? AssignmentExpression : AssignmentExpression
は、次のように評価されます。
1. lref は、LogicalORExpressionを評価した結果とする 2. ToBoolean(GetValue(lref)) が、 trueである場合、 a. trueRef は、AssignmentExpressionを評価した結果とする b. GetValue(trueRef) を返す 3.それ以外の場合、 a. falseRef は、2つめのAssignmentExpressionを評価した結果とする b. GetValue(falseRef) を返す
ConditionalExpressionNoInプロダクションは、LogicalORExpression、1つめのAssignmentExpression、2つめのAssignmentExpressionをそれぞれ含む代わりにLogicalORExpressionNoIn、AssignmentExpression 、AssignmentExpressionNoInを含んで評価される場合を除き、ConditionalExpressionと同じ方法で評価されます。 [注釈] ECMAScript内のConditionalExpression(条件式)における文法は、2つめの副次式がExpression(式)とすることを許容する一方、3つめの式については、ConditionalExpressionにすることを制限する C や Java での場合とは、ほんの少しばかり異なります。 ECMAScript内のこの相違における動機は、条件の一方(arm of a conditional)だけを有効にする場合、紛らわしさを排除したい場合、中央の式の大部分が、かなり無駄なカンマ式である場合の何れかによって規定される式の指定を許容する為です。