2017-05-12 5 views
0

次の意味は? SETP 1とステップ2で偽これはどういう意味ですか?それは別の表現ですか?

var iCurrentIndex = oCurrentQuestionModel.getProperty("/index"); ...(1) 
    iCurrentIndex = iCurrentIndex ? ++iCurrentIndex : 0; ...(2) 

するvar iCurrentIndex =それが値0 が割り当てられます何この表現は誰も私を説明することができます意味ですか?

+1

これは三者です:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator –

+1

@Jeremy Jacksonありがとうございました。 – loki

答えて

0

あなたのステップ2は次のように書き換えることができます:あなたは演算子を使用している

if (iCurrentIndex) { 
    ++iCurrentIndex; 
} else { 
    return 0; 
} 

、それhereについて読みます。

var iCurrentIndex = oCurrentQuestionModel.getProperty("/index"); 

を想定し

+0

リンクは便利でしたが、なぜ誰かがifやelseの代わりに三項演算子を使うのですか?ちょっと好奇心が強い – loki

+0

条件が短い場合は、5行ではなく1行に入れても大丈夫です。 –

+0

@loki個人的な好み、可読性、または短いコードの問題です。 – errata

0

は、インクリメントが行われないことができ、undefinedまたはnullまたはちょうどfalseを返します。

戻り値がtruthy(ブール値にキャストされた場合はtrueに解決される値)であるかどうかを確認してから、0をiCurrentIndexに増やすかどうかを確認する必要があります。

iCurrentIndex = iCurrentIndex ? ++iCurrentIndex : 0; 

上記conditional oparator条件を使用し、?後部、:if文または一部の次いで部、ifステートメントのelse一部のいずれかを評価します。

+0

ありがとうございます。そうすれば、三項演算子はelse文よりも優先されますか? – loki

+0

@ loki、実際には、増分**と**を代入すると、条件付き演算子を使用する良い例ではありません。 –

関連する問題