ホームページ  >  記事  >  ウェブフロントエンド  >  Javascript_javascript での && と || の使用の概要

Javascript_javascript での && と || の使用の概要

WBOY
WBOYオリジナル
2016-05-16 18:28:411096ブラウズ

&& と || は通常、比較的単純なのでここでは説明しません。

次の議論のために 2 つのオブジェクトを準備します。

コードをコピー コードは次のとおりです:

var alice = {
name: "alice" ,
toString: function () {
return this.name
}
}

var smith = {
name: "smith",
toString: function () {
return this.name
}
}

JavaScript では、&& はブール型に使用できるだけでなく、ブール型の結果のみを返すこともできません。
l 最初のオペランドがブール型で、値が false の場合は、直接 false を返します。
l 最初のオペランドがブール型で値が true、もう一方のオペランドがオブジェクト型の場合、このオブジェクトが返されます。
l 両方のオペランドがオブジェクト型の場合、2 番目のオブジェクトを返します。
l いずれかのオペランドが null の場合は、null が返されます。
l いずれかのオペランドが NaN の場合は、NaN を返します。
l 未定義のオペランドがある場合は、未定義を返します。


alert(false && alice); // false
alert(true && alice); // アリス

alert(alice && smith); >alert(smith && alice); // alice

alert(null && alice); // null
alert(NaN && alice); // NaN
alice); // 未定義
alert(alice && unknown); // 未定義

|| の場合、ブール型に使用されるだけでなく、ブール型の結果のみを返します。
実際には、null、未定義、NaN は false として扱われます。そして、オブジェクトは true として扱われます。

l 最初のオペランドがブール型で、値が true の場合は、直接 true を返します。
l 最初のオペランドの型が Boolean で、値が false で、2 番目のオペランドが object の場合、object オブジェクトが返されます。
l 両方のオペランドの型がオブジェクトの場合、最初のオブジェクトを返します。
l 両方のオペランドが null の場合、null が返されます。
l 両方のオペランドが NaN の場合は、NaN を返します。
l 両方のオペランドが未定義の場合は、未定義が返されます。

alert(false || アリス); alert(true

|| アリス) // true alert(アリス || スミス) // アリス

; alert(smith || アリス) // スミス

; alert(

null

|| アリス); // アリス alert(alice ||

null

); // アリス alert(

null

|| null) // null alert(NaN || アリス) // アリス

; alert(alice || NaN) // アリス

; alert(NaN || NaN); // NaN

alert(未定義 || アリス) // アリス

; alert(アリス || 未定義) // アリス

; alert(未定義 || 未定義) // 未定義

; 説明のこの部分を読むことをお勧めします。

a && b: a と b をブール型に変換し、論理 AND を実行します。 true は b を返し、false は a を返します a || a、b をブール型に変換し、論理和を実行します。true は a を返し、false は b を返します。変換ルール:
オブジェクトは true
ゼロ以外の数値は true
空でない文字列は true
その他は false

関連記事でまとめた以下の記事を参照してください。

js AND or 演算子 | | && 魔法の使い方

JS は AND または演算子の優先順位を使用して if else 条件判定式を実装します
JavaScript && および || アルゴリズムの代替使用スキル

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。