JavaScriptの論理演算子について質問です。
「alert(e.target||e.srcElement);」の結果がtrue かfalseではなくて「object HTMLHtmlElement」となるのは何故なのでしょうか?
JavaScriptでは"||"は論理演算子ではないのでしょうか?
-----------------------------------------------------------------------
<body>
<a id="id1">Textarea</a>
<script>
(function () {
var i = document.getElementById ("id1");
document.addEventListener("dblclick", addEL, false);
function addEL (e) {
alert(e.target||e.srcElement);
}
}) ();
</script>
</body>
No.2ベストアンサー
- 回答日時:
|| は「バイナリ論理演算子」で論理演算子の一種です。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma26 …
https://developer.mozilla.org/ja/JavaScript/Refe …
---
// 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;
---
疑問を持つのは大切なことですが、もう少し自分で調べてから質問するとより理解が深まるのではないかと思います。
# リファレンスを読めばもう一歩進んだ質問ができるのではないでしょうか。
ありがとうございます。
結局のところ、論理値として評価して(Boolean型に変換して)trueを返す場合というのは
・空でない、
・0でない数値
・オブジェクト
・Infinity
・-Infinity
の場合なんですね。
ありがとうございました。
認識あってますでしょうか?
(少し心配です。)
No.1
- 回答日時:
論理演算子||は、
A || B
とした場合、Aが真のときにはAが、Aが偽の時にはBが返却されます。
なお、Aが真の時にはBは評価されません。これをショートサーキットといいます。
JavaScriptに限らず||演算子はたいていの言語でこんな挙動します。
上記の挙動を利用して、
if(A){x=A;}else{x=0;}
を
x = A || 0;
と書いたりできます。
この回答への補足
有難うございます。
何分未熟なもので、自分なりに解釈した結果を確認させて頂きたいと思います。
>>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が見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ダブルクォーテーションのrepla...
-
Arduino(C言語) String "1101" ...
-
Path型をString型へ変換する(Java)
-
javaで質問です。 文字列2023/2...
-
JavaのStringクラスに「外字」...
-
カタカナをローマジに変換する。
-
IBM漢字コード⇒SJIS変換方法
-
javascriptで文字列のsjis利用...
-
int型のゼロ埋め
-
COBOLで半角カナを全角カナに変換
-
jQuery.jsのcompressed版(pack...
-
エクセルVBAで「〜」が表現でき...
-
phpでの文字コード変換について
-
文字コード変換
-
半角全角混在データの中の半角...
-
テキストファイルの文字コードM...
-
半角全角変換ロジックについて
-
JAVAソースコードの暗号化
-
型変換キャストについて
-
byte配列をImageに変換する
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javaで質問です。 文字列2023/2...
-
ダブルクォーテーションのrepla...
-
Path型をString型へ変換する(Java)
-
int型のゼロ埋め
-
javascriptで文字列のsjis利用...
-
Visual Basic でのコードをASCI...
-
JavaのStringクラスに「外字」...
-
カタカナをローマジに変換する。
-
C言語32bitから64bitの移行につ...
-
UTF-8とUnicodeの互換性
-
COBOLで半角カナを全角カナに変換
-
文字列の比較
-
byte[] を long,float とかに...
-
全角英数字とハイフンを半角に...
-
byte型のマイナスの扱いについて
-
TEXTAREAからのデータを改行入...
-
javaの初歩的な質問です。
-
エクセルVBAで「〜」が表現でき...
-
DBから取得したデータの文字化け
-
[Javascript]エンターキー押下...
おすすめ情報