• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JavaScriptの論理演算子について)

JavaScriptの論理演算子について

このQ&Aのポイント
  • JavaScriptの論理演算子について質問です。
  • 「alert(e.target||e.srcElement);」の結果がtrue かfalseではなくて「object HTMLHtmlElement」となるのは何故なのでしょうか?
  • JavaScriptでは"||"は論理演算子ではないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • think49
  • ベストアンサー率59% (285/482)
回答No.2

|| は「バイナリ論理演算子」で論理演算子の一種です。 http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/11_Expressions.html#section-11.11 https://developer.mozilla.org/ja/JavaScript/Reference/Operators/Logical_Operators --- // 1-1. A をBoolean型に型変換し、true を返すなら A を返します。 // 1-2. A をBoolean型に型変換し、false を返すなら B を返します。 var x = A || B; // 1-1. A をBoolean型に型変換し、false を返すなら B を返します。 // 2-1. B をBoolean型に型変換し、false を返すなら C を返します。 var y = A || B || C; --- 疑問を持つのは大切なことですが、もう少し自分で調べてから質問するとより理解が深まるのではないかと思います。 # リファレンスを読めばもう一歩進んだ質問ができるのではないでしょうか。

hwbigin
質問者

お礼

ありがとうございます。 結局のところ、論理値として評価して(Boolean型に変換して)trueを返す場合というのは ・空でない、 ・0でない数値 ・オブジェクト ・Infinity ・-Infinity の場合なんですね。 ありがとうございました。 認識あってますでしょうか? (少し心配です。)

その他の回答 (1)

  • Werner
  • ベストアンサー率53% (395/735)
回答No.1

論理演算子||は、  A || B とした場合、Aが真のときにはAが、Aが偽の時にはBが返却されます。 なお、Aが真の時にはBは評価されません。これをショートサーキットといいます。 JavaScriptに限らず||演算子はたいていの言語でこんな挙動します。 上記の挙動を利用して、 if(A){x=A;}else{x=0;} を x = A || 0; と書いたりできます。

hwbigin
質問者

補足

有難うございます。 何分未熟なもので、自分なりに解釈した結果を確認させて頂きたいと思います。 >>if(A){x=A;}else{x=0;} >>を >>x = A || 0; >>と書いたりできます。 if(A){}のAはbool型であるかどうかに関係なく、0以外だった場合はx=Aになり、 それ以外の場合x=0となるということで良いでしょうか? つまり、「e.target||e.srcElement」についてもe.targetが存在すればe.targetのプロパティを返し、 そうでなければe.srcElementのプロパティを返すということでしょうか? 解釈間違えていたら教えて頂きたいです。 宜しくお願いいたします。

関連するQ&A