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
が返却されます。次に外部の alert でそれが表示されます。
検査は alert(3)
に到達しないので、 3
は現れません。