【初心者向け】「==」「===」とは?比較演算子の違いを解説

【初心者向け】「==」「===」とは?比較演算子の違いを解説

目次

    「==」「===」とは

    「==」「===」とは、プログラミング言語で使われる比較演算子です。「=」の数が1つ違うだけですが、意味や動作にはきちんとした違いがあります。

    ==

    一般に、「等価演算子」と呼ばれます。比較する値が等しいかを判断する演算子です。 否定する場合は、「!=」と書きます。
    Java、Python、C++など、幅広いプログラミング言語で使用されます。

    ===

    一般に、「厳密等価演算子」と呼ばれます。比較する値と型が等しいかを判断する演算子です。否定する場合は、「!==」と書きます。
    JavaScript、PHPなどのプログラミング言語で使用されます。Javaでは使用できません。

    ===を使うべき理由

    ===が使用できる言語においては、===を使用することが望ましいです。
    コードを読む際、比較が型も含めて行われていると理解しやすく、型変換を行わないためバグの防止やパフォーマンスの向上ができるからです。

    比較演算子の使い方

    比較演算子は、演算子の両側に比較したい値を記述します。
    以下は、Javaでの使用例です。

    int num1 = 10;
    int num2 = 10;
    
    
    if (num1 == num2) {
    System.out.println("num1とnum2は等しいです。");
    } else {
    System.out.println("num1とnum2は等しくありません。");
    }

    実行結果

    num1とnum2は等しいです。 

    動作の違い

    ==と===では、値のみをチェックするか、値と型のどちらもチェックするかが異なると前述しました。サンプルを用いて動作の違いを詳しく見ていきましょう。
    例には、JavaScriptを使用しています。

    var a = `5`;  // 文字列
    var b = 5;  // 数値
    
    
    if (a == b) {
    alert(`==:等しい`);
    }
    
    
    if (a === b) {
    alert(`===:等しい`);
    }

    実行結果

    ==:等しい

    この例では、文字列としての「5」と数値としての「5」が初期化されています。
    値としては同じ「5」であるため、「==」を使用したif文では表示がされます。しかし、文字列と数値で型が異なるため、「===」を使用したif文の表示は行われていません。

    パフォーマンスの違い

    プログラミングにおけるパフォーマンスとは、処理速度やメモリ使用量、伝達速度などのことを指します。
    ここでは、JavaScriptで処理速度の違いを確認します。

    ==を使用した際の処理速度

    コード内容は、1000000回value1とvalue2の値が等しいかをループし、そのループにかかった処理時間を表示するというものです。

    Sample.js

    function compareEquality() {
            const iterations = 1000000;
            const value1 = `5`;
            const value2 = 5;
     
            let startTime = performance.now();
            for (let i = 0; i < iterations; i++) {
                    if (value1 == value2) {
                    }
            }
     
            let endTime = performance.now();
            alert(`==の処理時間: ${endTime - startTime} ミリ秒`);
    }

    実行結果

    ==の処理時間: 8.900000035762787 ミリ秒

    ===を使用した際の処理速度

    コード内容は、1000000回value1とvalue2の値と型が等しいかをループし、そのループにかかった処理時間を表示するというものです。

    Sample.js

    function compareEquality() {
    const iterations = 1000000;
    const value1 = `5`;
    const value2 = 5;

    let startTime = performance.now();
    for (let i = 0; i < iterations; i++) {
    if (value1 === value2) {
    }
    }

    let endTime = performance.now();
    alert(`===の処理時間: ${endTime – startTime} ミリ秒`);
    }

    実行結果

    ===の処理時間: 0.699999988079071 ミリ秒

    サンプルコード

    「4 パフォーマンスの違い」で使用したHTMLをご紹介します。 実際に動かしてみたり、JavaScriptの内容を変更したりして、理解を深めてみてください。

    HTML

    Sample.html

    <!DOCTYPE html>
    <html lang="ja">
    
    
    <head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, initial-scale=1.0">
    <title>==と===の処理速度比較</title>
    <script src="Sample.js" defer></script>
    </head>
    
    
    <body>
    <h1>==と===の処理速度比較</h1>
    <button id="compareButton"
    onclick=" compareEquality()" >比較実行</button>
    </body>
    
    
    </html>

    まとめ

    今回は、=====の違いについて触れてきました。

    ===を理解して使うことで、より質の高いプログラムを作成できるようになります。

    ぜひ活用していきましょう!

    まずは選考会へ!

    「プログラマーになって一緒に働きませんか?」
    テックドリームの選考会は、選考だけでなく「相互理解」の場。不安なことも直接ご相談いただけます。


    電話でのご予約

    Webかんたん予約ができない場合や、ご質問がございましたら、
    お気軽にお電話ください。

    0120-262-242
    9:00~18:00(土日祝を除く)

     

    >テクド・リム

    テクド・リム


    「テックドリーム」の公式キャラクター。
    プログラマーだった父の影響を受けて、
    夢に向かって日々勉強に励むプログラマーのタマゴ。
    夢は「世界を変える、すごいプログラマーになること!」

    CTR IMG