JavaScriptのincludes()とは?配列・文字列の存在チェックを徹底解説

JavaScriptのincludes()は、配列や文字列の中に特定の値が含まれているかどうかを判定するためのメソッドです。
条件分岐やデータの検証など、実務でも頻繁に使用される基本的な機能のひとつです。
本記事では、includes()の基本から実践的な使い方までを体系的に解説します。
Contents
includes()とは
includes()は、指定した値が含まれているかどうかを判定し、結果をtrueまたはfalseで返します。
const numbers = [1, 2, 3, 4, 5];
console.log(numbers.includes(3)); // true
console.log(numbers.includes(10)); // falseこのように、「存在しているかどうか」をシンプルに判定できるのが特徴です。
配列でのincludes()の使い方
基本構文
array.includes(検索値, 開始位置);- 検索値:探したい値
- 開始位置(省略可):検索を開始するインデックス
基本例
const fruits = ['apple', 'banana', 'orange'];
console.log(fruits.includes('banana')); // true
console.log(fruits.includes('grape')); // false開始位置を指定する
const numbers = [1, 2, 3, 4, 5];
console.log(numbers.includes(2, 2)); // false(インデックス2以降から検索)文字列でのincludes()の使い方
文字列にもincludes()が使えます。
基本例
const message = 'JavaScriptは楽しい言語です';
console.log(message.includes('楽しい')); // true
console.log(message.includes('難しい')); // false大文字・小文字に注意
const text = 'JavaScript';
console.log(text.includes('javascript')); // falseincludes()は大文字・小文字を区別します。必要に応じて変換してから使用します。
const text = 'JavaScript';
console.log(text.toLowerCase().includes('javascript')); // trueincludes()の戻り値
includes()の戻り値は必ず真偽値です。
const list = ['a', 'b', 'c'];
const result = list.includes('b');
console.log(result); // true条件分岐と組み合わせて使うことが一般的です。
const users = ['taro', 'jiro', 'saburo'];
if (users.includes('taro')) {
console.log('ユーザーが存在します');
}indexOf()との違い
includes()と似た機能にindexOf()があります。
const items = ['a', 'b', 'c'];
console.log(items.indexOf('b')); // 1
console.log(items.includes('b')); // true違いのポイント
indexOf():位置(インデックス)を返すincludes():存在の有無(true / false)を返す
存在チェックだけであれば、includes()の方が直感的で読みやすくなります。
NaNの判定ができる
includes()はNaNも正しく判定できます。
const values = [1, 2, NaN];
console.log(values.includes(NaN)); // true一方でindexOf()では判定できません。
const values = [1, 2, NaN];
console.log(values.indexOf(NaN)); // -1オブジェクト配列での注意点
includes()は参照を比較するため、オブジェクトの場合は注意が必要です。
const obj1 = { id: 1 };
const obj2 = { id: 1 };
const list = [obj1];
console.log(list.includes(obj1)); // true
console.log(list.includes(obj2)); // false値ではなく「同じ参照かどうか」を見ています。
実務での活用例
入力チェック
const allowedRoles = ['admin', 'editor', 'viewer'];
const role = 'admin';
if (allowedRoles.includes(role)) {
console.log('アクセス許可');
}条件分岐の簡略化
const status = 'pending';
if (['pending', 'processing'].includes(status)) {
console.log('処理中の状態です');
}includes()を使うメリット
コードがシンプルになる
// indexOf()
if (items.indexOf('a') !== -1) {}
// includes()
if (items.includes('a')) {}可読性が高い
「含まれているかどうか」がそのままコードに表れるため、理解しやすくなります。
よくある注意点
型の違いに注意
const numbers = [1, 2, 3];
console.log(numbers.includes('1')); // false型が異なると一致しません。
部分一致ではない
const list = ['apple'];
console.log(list.includes('app')); // false完全一致のみ判定されます。
他の配列メソッドとの関係
配列操作では、includes()とあわせて他のメソッドもよく使われます。
- 配列を変換する → JavaScriptのmap()とは?配列処理の基本から実践まで徹底解説
- 条件で絞り込む → JavaScriptのfilter()とは?配列の絞り込みを徹底解説
- 条件に合う最初の要素 → JavaScriptのfind()とは?最初の要素を取得する方法
これらを組み合わせることで、より柔軟なデータ処理が可能になります。
まとめ
includes()は、配列や文字列に特定の値が含まれているかを判定するシンプルで強力なメソッドです。
- 存在チェックを簡潔に書ける
- 真偽値で結果を取得できる
NaNも正しく判定できる- 可読性が高い
JavaScriptの基礎として非常に重要なメソッドのため、確実に理解しておくことが大切です。

