こんにちは!フロントエンドの現場で長年コードと向き合っていると、「JavaScriptって、時々すごく自由奔放で読めない奴だな」と思うことがよくあります。
特に、データ型を扱う時の「えっ、君は一体何者なの?」という感覚。初心者の方が一番最初につまずくポイントですよね。今日はその中でも、「このデータ、本当に配列(Array)なの?」と見分けるための、とっておきの魔法のツール『Array.isArray()』についてお話ししましょう。
—
JavaScript界の「仕分け作業」はなぜ難しいのか?
まずは少しだけ、なぜこれが必要なのかを想像してみてください。
あなたは巨大な倉庫で、お買い物の荷物を仕分けする係だとします。箱の中には、いろんな形をした荷物が詰め込まれています。「数字」や「文字」のようなシンプルなものもあれば、「オブジェクト」という名の複雑な詰め合わせセットも混ざっています。
困ったことに、JavaScriptの世界では「配列(Array)も、実はオブジェクトの一種」というルールがあるんです。
よくある落とし穴:typeofの裏切り
多くの人が最初に「これって何型かな?」と調べる時に使うのが `typeof` という命令です。でも、これを配列に使うと、こんな悲劇が起こります。
const myItems = [“りんご”, “みかん”, “ぶどう”];
// typeofで調べてみると…?
console.log(typeof myItems); // 結果は “object” になってしまう!
ほら、見てください。「配列だよ!」って教えてほしいのに、JavaScriptは「まあ、広い意味ではオブジェクトだよね」と、なんとも曖昧な答えを返してくるんです。これでは、正確な仕分けなんてできませんよね。
—
そこで登場するのが『Array.isArray()』
そんな「曖昧な回答」に悩む私たちを救ってくれるのが、`Array.isArray()` というメソッドです。これはもう、「配列検定の専門家」だと思ってください。
この命令は、中身が配列なら「`true`(はい、そうです!)」、そうでなければ「`false`(いいえ、違います!)」と、白黒ハッキリつけてくれます。
実践!配列を見極めるコード
実際にエディタに貼り付けて試してみてください。
// 3つの異なるデータを用意しました
const list = [“本”, “ペン”, “ノート”]; // これは配列
const box = { color: “red”, size: “small” }; // これは普通のオブジェクト
const name = “JavaScript”; // これは文字列
// Array.isArray() に託してみましょう
console.log(Array.isArray(list)); // true (正真正銘の配列です!)
console.log(Array.isArray(box)); // false (これは箱であって、配列じゃない!)
console.log(Array.isArray(name)); // false (ただの文字ですよ!)
どうでしょう? `typeof` では全部「object」や「string」としか言えなかったものが、`Array.isArray` を使うことで、一発で「配列かどうか」だけを抽出できるようになりました。
—
なぜこの「仕分け」が重要なのか?
現場のリアルな話をすると、私たちが受け取るデータは、外部のシステム(API)から送られてくることが多いんです。
例えば、「商品リストを表示する機能」を作っているとき、本来は配列(リスト)が届くはずなのに、何らかのエラーで「空っぽのオブジェクト」や「未定義(undefined)」が届いてしまうことがあります。
そんな時、`Array.isArray()` を使わずに強引に配列用の命令(`.map()` など)を使ってしまうと、「そんな命令は知らない!」とプログラムがパニックを起こして画面が真っ白になってしまうんです。
だからこそ、こんな風に守ってあげることが大切です。
function showMyItems(data) {
// もし配列じゃなかったら、ここで止める(ガードする)
if (!Array.isArray(data)) {
console.log(“ごめんなさい、これはリストではありませんでした”);
return;
}
// ここまで来れば、安心して配列として扱える!
data.forEach(item => {
console.log(item + “を表示します”);
});
}
—
最後に:つまずいても大丈夫ですよ
JavaScriptの型判定は、最初から完璧に理解しようとすると少し骨が折れます。「オブジェクトなのに配列って呼ばれるの?」「typeofが嘘をつくの?」なんて思うのは、あなたが真剣にコードと向き合っている証拠です。
まずは「配列かどうかを確認したいときは、迷わず `Array.isArray()` を使えばいいんだ」とだけ覚えておいてください。それだけで、あなたの書くコードの「頑丈さ」はグッと上がります。
もし途中でエラーが出たり、うまくいかなくても大丈夫。それはJavaScriptという相棒と、少しずつ仲良くなっている証拠ですから。今日からぜひ、この便利なツールを現場で使い倒してみてくださいね!

コメント