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 は現れません。