JavaScript - if文でのand(&&)、or(||)、not(!)の使い方

JavaScriptには、論理演算子としてand(&&)、or(||)、not(!)があります。

if文でも論理演算子を使うことで、より複雑な論理式(条件式)を定義することができます。

ここでは、3つの論理演算子の意味と使い方を紹介します。

3つの論理演算子

演算子 意味
&& 論理積 AND かつa && b
|| 論理和 OR またはa || b
! 論理否定 NOT ~でない!a

「&&」: AND をあらわす論理積演算子

「&&」は論理積演算子で、前のオペランド(被演算子)と後ろのオペランドの 両方が true の場合に true となります。

★ 「&&」 の例


if (a == 0 && b == 0){
	// 処理
}

上の場合、a と b の両方が 0 の場合、true となります。 それ以外は false です。

「||」: OR をあらわす論理和演算子

「||」は論理和演算子で、オペランド(被演算子)のどちらか一方、 または両方が true の場合に true となります。

両方が false の場合には false となります。

★ 「||」 の例


if (a == 0 || b == 0){
	// 処理
}

上の場合、a と b のいずれかが 0、または両方が 0 の場合に true となります。

両方とも 0 でない場合は false となります。

「!」: NOT をあらわす論理否定演算子

「!」は論理否定演算子で、オペランド(被演算子)は1つです。

オペランドの論理値を反転させ、 オペランドが true の場合は false となり、 オペランドが false の場合は true となります。

★ 「!」 の例


if (!(a == 0)){
	// 処理
}

上の場合、a == 0 が true の場合は false となり、 a == 0 が false の場合は true となります。

文法エラーになる記述例

「!」を使う場合、次のように記述すると文法エラーとなりますので注意してください。

どこが間違いか考えてみてください。


if !(a == 0){
	// 処理
}

// エラーメッセージ
// SyntaxError: missing ( before condition

JavaScript では、条件式を () で囲む必要があります。

この場合、「!」を含む「!(a == 0)」が条件式ですから、 (!(a == 0)) と記述する必要があります。

if文の条件式が長くなる場合の折り返し(改行)方法

and(&&)、or(||)、not(!)の論理演算子を使った場合、 if文の条件式が長くなり、見にくくなる場合があります。

条件式が長くなった場合は、 見やすくなるように折り返し(改行)します。

折り返し(改行)の方法については次のページを参考にしてください。

関連記事: 長いif文の条件式や、文字列はどこで折り返すのがいい?