條件運(yùn)算符

2018-06-16 15:20 更新

語法:

ConditionalExpression : LogicalORExpression LogicalORExpression ? AssignmentExpression : AssignmentExpressionConditionalExpressionNoIn : LogicalORExpressionNoIn LogicalORExpressionNoIn ? AssignmentExpressionNoIn : AssignmentExpressionNoIn

 語義

 產(chǎn)生式 ConditionalExpression : LogicalORExpression ? AssignmentExpression : AssignmentExpression 按照下面的過程執(zhí)行 :

  1. 令 lref 為解釋執(zhí)行 LogicalORExpression 的結(jié)果 .
  2. 如果 ToBoolean(GetValue(lref)) 為 true ,那么: 令 trueRef 為解釋執(zhí)行第一個 AssignmentExpression 的結(jié)果 . 返回 GetValue(trueRef).
  3. Else 令 falseRef 為解釋執(zhí)行第二個 AssignmentExpression 的結(jié)果 . 返回 GetValue(falseRef).

 ConditionalExpressionNoIn執(zhí)行完全按照ConditionalExpression 相同的方式,除了AssignmentExpression和AssignmentExpressionNoIn替代了第一個AssignmentExpression和第二個AssignmentExpression。

 ECMAScript中的ConditionalExpression跟C和Java有一點(diǎn)點(diǎn)不同,它允許第二個子表達(dá)式是個Expression但是限制第三個表達(dá)式必須是ConditionalExpression。ECMAScript中這個差別的依據(jù)是可以允許允許賦值表達(dá)式出現(xiàn)在條件的任意一側(cè)同時避免逗號表達(dá)式作為中間的表達(dá)式時無用且易混淆的使用方式。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號