JavaScript 比較演算子と論理演算子
比較演算子と論理演算子は、真偽をテストするために使用されます。
比較演算子
比較演算子は論理文で使用され、変数や値の等価性または差異を判断します。
例として、x = 5 とした場合、以下のテーブルは比較演算子を説明します:
演算子 | 説明 | 比較するもの | 結果 |
---|---|---|---|
== | 等しい | x == 8 | false |
== | 等しい | x == 5 | true |
== | 等しい | x == “5” | true |
=== | 値と型が等しい | x === 5 | true |
=== | 値と型が等しい | x === “5” | false |
!= | 等しくない | x != 8 | true |
!== | 値または型が等しくない | x !== 5 | false |
!== | 値または型が等しくない | x !== “5” | true |
> | より大きい | x > 8 | false |
< | より小さい | x < 8 | true |
>= | 以上 | x >= 8 | false |
<= | 以下 | x <= 8 | true |
使用方法
比較演算子は条件文で使用して、値を比較し、その結果に応じてアクションを取ることができます:
if (age < 18) {
text = "アルコールを購入するには若すぎます";
}
このチュートリアルの次の章で条件文の使用方法についてさらに学びます。
論理演算子
論理演算子は変数や値の間の論理を決定するために使用されます。
例として、x = 6 および y = 3 とした場合、以下のテーブルは論理演算子を説明します:
演算子 | 説明 | 例 |
---|---|---|
&& | 論理積 | (x < 10 && y > 1) |
|| | 論理和 | (x == 5 || y == 5) |
! | 論理否定 | !(x == y) |
条件(三項)演算子
JavaScriptには条件演算子も含まれており、ある条件に基づいて変数に値を割り当てます。
構文:
variablename = (condition) ? value1 : value2;
例:
let voteable = (age < 18) ? "アルコールを購入するには若すぎます" : "成人です";
もし変数 age が18未満の値であれば、変数 voteable の値は "アルコールを購入するには若すぎます" となります。それ以外の場合は "成人です" となります。
異なる型の比較
異なる型のデータを比較すると予期しない結果が得られることがあります。
文字列と数値を比較する場合、JavaScriptは比較を行う際に文字列を数値に変換します。空の文字列は0に変換され、非数値文字列は常にfalseになるNaNに変換されます。
ケース | 結果 |
---|---|
2 < 12 | true |
2 < "12" | true |
2 < "John" | false |
2 > "John" | false |
2 == "John" | false |
"2" < "12" | false |
"2" > "12" | true |
"2" == "12" | false |
二つの文字列を比較するとき、"2" は "12" より大きいと判断されます。なぜなら(辞書順で)1は2より小さいからです。
正しい結果を得るためには、比較する前に変数を適切な型に変換する必要があります:
age = Number(age);
if (isNaN(age)) {
voteable = "数値ではありません";
} else {
voteable = (age < 18) ? "アルコールを購入するには若すぎます" : "成人です";
}
Nullish結合演算子 (??)
??演算子は、最初の引数がnullish(nullまたはundefined)でない場合、その値を返します。そうでない場合は、第二引数を返します。
例:
let name = null;
let text = "欠落";
let result = name ?? text;
nullish演算子は2020年3月以降のすべてのブラウザでサポートされています:
- Chrome 80
- Edge 80
- Firefox 72
- Safari 13.1
- Opera 67
オプショナルチェイニング演算子 (?.)
?.演算子はオブジェクトがundefinedまたはnullの場合、エラーをスローせずにundefinedを返します。
例:
// オブジェクトを作成:
const car = {type:"Fiat", model:"500", color:"white"};
// 車の名前を取得:
document.getElementById("demo").innerHTML = car?.name;
オプショナルチェイニング演算子は2020年3月以降のすべてのブラウザでサポートされています:
- Chrome 80
- Edge 80
- Firefox 72
- Safari 13.1
- Opera 67