OR演算されたアラートの結果は何ですか?
重要度:3
以下のコードはどのような出力を生成しますか?
alert( alert(1) || 2 || alert(3) );
答え: 最初は1
、次に2
。
alert( alert(1) || 2 || alert(3) );
alert
の呼び出しは値を返しません。または、言い換えれば、undefined
を返します。
- 最初のOR
||
は左オペランドalert(1)
を評価します。これが最初のメッセージを1
と共に表示します。 alert
はundefined
を返すので、ORは偽の値を検索して2番目のオペランドに進みます。- 2番目のオペランド
2
は真なので、実行は停止し、2
が返されて、外部のアラートで表示されます。
3
は表示されません。評価はalert(3)
に到達しないためです。