JavaScriptの比較演算子と論理演算子を理解する
序章
コンピュータサイエンスの分野には、数理論理学の多くの基盤があります。 論理に精通している場合は、真理値表、ブール代数、および等式または差分を決定するための比較が含まれることをご存知でしょう。
JavaScriptプログラミング言語は、演算子を使用して、プログラミング内の制御フローを支援できるステートメントを評価します。
このチュートリアルでは、論理演算子について説明します。 これらは一般的に条件文で使用され、 if
, else
、 と else if
キーワード、および三項演算子。 最初に条件ステートメントについて詳しく知りたい場合は、JavaScriptで条件ステートメントを作成する方法を参照してください。
比較演算子
JavaScriptには、指定された値が異なるか等しいか、および値が別の値よりも大きいか小さいかを評価するために使用できるいくつかの比較演算子があります。 多くの場合、これらの演算子は、変数に格納されている値とともに使用されます。
比較演算子はすべて、ブール(論理)値を返します。 true
また false
.
次の表は、JavaScriptで使用できる比較演算子をまとめたものです。
オペレーター | その意味 |
---|---|
== |
に等しい |
!= |
等しくない |
=== |
型変換なしと厳密に等しい |
! == |
型変換なしとは厳密に等しくありません |
> |
より大きい |
>= |
以上 |
< |
未満 |
<= |
以下 |
各オペレーターについて詳しく見ていきましょう。
平等
等式演算子は、演算子のいずれかの側の値が等しいかどうかを測定します。
次のことを考えてみましょう。
let x = 3;
x == 3;
なぜなら 3
と同等です 3
、受信した出力はのブール値になります true
.
Outputtrue
代わりにテストする場合 x
が別の整数と等しい場合、ステートメントがfalseであることが検証されたことを示す出力を受け取ります。
let x = 3;
x == 5;
Outputfalse
この等価式を使用すると、文字列やブール値などの他のデータ型をテストすることもできます。
以下の文字列の例を使用します。
let shark = 'sammy';
shark == 'sammy';
shark == 'taylor';
Outputtrue
false
最初の例では、式が返されました true
文字列が同等だったからです。 2番目の例では、 shark == 'taylor'
、返された式 false
文字列が等しくなかったからです。
注目に値するのは、 ==
演算子は厳密な同等ではないため、同等と評価される数値と文字列を混合できます。 次の例を考えてみましょう。
let x = 3;
x == '3';
最初の行は数値データ型を使用し、2番目の行はテストしますが x
文字列データ型に対して、両方の値が3に等しく、受け取る出力は、式が真であることを示します。
Outputtrue
この演算子はデータ型に厳密ではないため、たとえば、数値の代わりに文字列を入力するユーザーをサポートできます。 同等性をテストするためにデータ型を変換する必要はありません。
次のような比較演算子を使用できる場合が多くあります。 ==
オペレーター。 たとえば、テストを採点するときに同等性をテストしたい場合があります。 そうすれば、与えられた答えが正しいかどうかを検証できます。
let answer = 10;
let response = prompt("What is 5 + 5?");
if (answer == response) {
console.log("You're correct!");
}
ここで、学生が入ると 10
プロンプトが表示されたときの質問に答えて、彼らは正しいというフィードバックを受け取ります。
JavaScriptには比較演算子の潜在的なアプリケーションがたくさんあり、それらはプログラムのフローを制御するのに役立ちます。
これで、いくつかの例を含む基盤ができました。 ==
、今後は少し簡単に説明します。
不平等
The !=
演算子は不等式をテストして、演算子の両側の値が等しくないかどうかを判断します。
例を考えてみましょう。
let y = 8;
y != 9;
この例では、 8
はと等しくない 9
、したがって、式は次のように評価されます true
:
Outputtrue
考慮すべき不平等の声明について false
、次のように、両側の2つの値は実際には等しい必要があります。
let y = 8;
y != 8
Outputfalse
この2番目の例では、演算子の両側の2つの値が等しいため、式は真ではありません。
身元
The ===
演算子は、2つの値が等しい値との両方が等しいタイプであるかどうかを判別します。 これは、厳密な等式演算子とも呼ばれます。 これは、数値と文字列のデータ型を混在させることができないことを意味します。
次に例を示します。
let z = 4;
z === 4;
z === '4';
次の出力を受け取ります。
Outputtrue
false
例は次のことを示しています z
厳密には等しい 4
(の数値が割り当てられているため 4
)、ただし、文字列と厳密に等しいではない '4'
.
この演算子は厳密であるため、たとえばID演算子を使用する場合は、ユーザーが入力したデータをあるデータ型から別のデータ型に変換する必要がある場合があることに注意する必要があります。 これは、プログラム全体でデータ型の一貫性を保つのに役立つ場合があります。
非アイデンティティ
お気に入り ===
、 オペレーター !==
厳密な不等式を評価します。これは、演算子の両側のオペランドの値とタイプの両方を考慮します。
次の例を確認します。
let a = 18;
a !== 18;
a !== '18';
a !== 29;
上記の出力は次のようになります。
Outputfalse
true
true
この例では、 a
はは厳密に等しい 18
、最初の式は次のように評価されます false
不平等をテストしているので。 次の2つの例では、 a
文字列と等しくないと判断された '18'
と数 29
、したがって、これらの2つの式は次のように評価されます。 true
(が等しくないため)。
より大きい
JavaScriptの大なり記号は、数学からおなじみかもしれません。 >
. これは、ある値(式の左側)が別の値(式の右側)よりも大きいかどうかを評価します。
以下のような ==
上記の演算子では、大なり記号はではなく厳密であるため、文字列と数値を混在させることができます。
次の例を考えてみましょう。
let f = 72;
f > 80;
f > '30';
次の出力が表示されます。
Outputfalse
true
第一に、 72
が未満です 80
、したがって、最初の式は次のように評価されます false
. 2番目の例では、 72
実際にはより大きい '30'
、および演算子は数値が文字列であることを気にしないため、式は次のように評価されます。 true
.
以上
同様に、以上の演算子は、一方のオペランドがもう一方のオペランドのしきい値を満たしているかどうかを評価します。 この演算子は次のように入力されます >=
大なり記号(>
)と等号(=
).
私たちの例:
let g = 102;
g >= 90;
g >= 103;
Outputtrue
false
なぜなら 102
より大きい数です 90
、それは以上であると見なされます 90
. なぜなら 102
より少ない 103
、それは false
それを述べるために 102 >= 103
. どちらかなら 90
また 103
文字列データ型の場合、式も同じように評価されます。
未満
より小さい演算子は、より大きい演算子のミラーバージョンとして表示されます。 <
.
次の例をデモンストレーションとして考えてください。
let w = 1066;
w < 476;
w < 1945;
Outputfalse
true
ここ、 1066
がより大きい 476
、したがって、式は次のように評価されます false
. でも、 1066
はよりも小さい 1945
、したがって、2番目のステートメントは次のように評価されます true
. 繰り返しますが、 476
また 1945
値は文字列にすることもできます。
以下
大なり記号の反対、以下の演算子— <=
—演算子の左側の値が右側の値以下であるかどうかを評価します。
ここにいくつかの例があります。
let p = 2001;
p <= 1968;
p <= 2001;
p <= 2020;
Outputfalse
true
true
最初の式は次のように評価されます false
なぜなら 2001
以上 1968
. 2番目の式では、変数と 2001
等しい値の場合、出力は true
. 3番目の式では、出力も true
なぜなら 2001
はよりも小さい 2020
. 繰り返しますが、これらの値は、次のように文字列として表すこともできます。 '2001'
、および同じ方法で評価します。
注:以下の演算子(以下)を混同しないように注意してください(<=
)矢印機能付き(=>
)JavaScriptで。 チュートリアルJavaScriptの矢印関数についてで矢印関数の詳細をご覧ください。
これらの比較演算子がプログラムでどのように連携できるかを理解するには、 grades.js
JavaScriptチュートリアルで条件文を作成する方法の例。
論理演算子
JavaScriptには、3つの論理演算子があり、2つ以上のプログラミングステートメントを接続して、 true
(「トゥルーシネス」とも呼ばれます)または false
(「偽の」)値。 これらはブール(論理)型で最もよく使用されますが、任意のデータ型の値に適用できます。
これらの論理演算子は、以下の表に要約されています。
オペレーター | 構文 | 説明 |
---|---|---|
と | && |
戻り値 true 両方のオペランドが true |
また | || | 戻り値 true いずれかのオペランドが true |
いいえ | ! |
戻り値 true オペランドが false |
これらの各演算子について詳しく見ていきましょう。
と
AND演算子は、2つのアンパサンドで表されます— &&
—戻ります true
左右のオペランドがtrueと評価された場合。
たとえば、ANDを使用すると、高品質で低価格であるかどうかを確認できます。
// High quality and low price are true
const highQuality = true;
const lowPrice = true;
(highQuality && lowPrice);
Outputtrue
両方の変数が true
、括弧内のAND演算は true
. 変数のいずれかが次のように初期化された場合 false
、 &&
式は次のように評価されます false
.
また
OR演算子は、2つのパイプで表されます— ||
—戻ります true
オペランドの1つが真の場合。
この例では、何かがかかどうかを確認します highQuality
また lowPrice
.
// Only low price is true
const highQuality = false;
const lowPrice = true;
(highQuality || lowPrice);
Outputtrue
2つの条件のうちの1つから(highQuality
また lowPrice
) だった true
、操作全体が返されます true
. これは次のように評価されるだけです false
両方の条件が false
.
いいえ
NOT演算子は、感嘆符で表されます— !
—戻ります true
オペランドがに設定されている場合 false
、 およびその逆。
const highQuality = true;
!(highQuality);
Outputfalse
上記のステートメントでは、 highQuality
の値があります true
. NOT演算子を使用して、次のことを確認しています。 hiqhQuality
に評価します false
. もしそうなら false
、出力は true
、しかしそれはなので true
、出力は false
.
NOT演算子は、最初は理解するのが少し難しいです。 覚えておくべき重要な部分は、NOTは何かが偽であると評価されるかどうかをチェックしないということです。
結論
論理演算子は、JavaScriptプログラミングにおけるフロー制御の構成要素です。 これらの演算子を効果的に使用すると、ステートメントを評価し、ステートメントが真であるか偽であるかに基づいて次の段階に進むプログラムを開発するのに役立ちます。
JavaScriptの詳細については、JavaScriptシリーズのコーディング方法とJavaScriptタグをご覧ください。