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

「==」「===」とは

「==」「===」とは、プログラミング言語で使われる比較演算子です。「=」の数が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かんたん予約

専用の予約フォームより、およそ60秒で簡単にお申込みいただけます。

電話でのご予約

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

0120-262-242
9:00~18:00(土日祝を除く)
最新情報をチェックしよう!
>テクド・リム

テクド・リム


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

彼女が通うプログラミングスクールについては「テクドリとは」ページにて紹介中!

CTR IMG