レッスンに戻る

OR されたアラートの結果は何ですか?

重要性: 3

下のコードは何を出力するでしょう?

alert( alert(1) || 2 || alert(3) );

答え: 最初は 1, 次に 2.

alert( alert(1) || 2 || alert(3) );

alert の呼び出しは値を返しません。また、言い換えると、 undefined を返します。

  1. 最初の OR || はその左のオペランド alert(1) を検査します。それは 1 の最初のメッセージを表示します。
  2. alertundefined を返すので、OR は真値を探すのに2つ目のオペランドに行きます。
  3. 2つ目のペランド 2 は真値なので、実行が中止され 2 が返却されます。次に外部の alert でそれが表示されます。

検査は alert(3) に到達しないので、 3 は現れません。