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

今回は、==と===の違いについて触れてきました。
===を理解して使うことで、より質の高いプログラムを作成できるようになります。
ぜひ活用していきましょう!
無料のプログラミングスクール「テクドリ」の卒業生のインタビュー動画を、インスタグラムほか公式SNSにて公開中!