JavaScriptのtypeof演算子を使って値のデータ型を判定する方法を現役エンジニアが解説【初心者向け】

初心者向けにJavaScriptのtypeof演算子を使って値のデータ型を判定する方法について解説しています。最初にJavaScriptのデータ型の種類について説明します。次にtypeof演算子によるデータ型の判定方法、instanceof演算子との違いを覚えましょう。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

監修してくれたメンター

高田 悠

JavaScriptを用いた実装などフロントエンド領域の開発が得意。Web上での3D表現に興味がありWebARの実装案件を複数経験。ワークライフバランスを重視してフリーランス生活を送っている。

JavaScriptのtypeof演算子を使って値のデータ型を判定する方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

目次

 

そもそもJavaScriptについてよく分からないという方は、JavaScriptとは何なのかについて解説した記事を読むとさらに理解が深まります。

 

田島悠介

今回は、JavaScriptに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

typeof演算子を使って値のデータ型を判定する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

データ型とは

typeof演算子を理解するためには、JavaScriptのデータ型の概念を把握しておく必要があります。

JavaScript内では、値は何らかの型に分類され、それぞれの分類に合った動きをしてくれます。

    以下はJavaScriptの型一覧のうち、よく使われるものを抜粋しています。

    型の名前 意味 値の例
    Boolean 真偽値 true, false
    null 空、ヌル null
    undefined 未定義 undefined
    Number 数値 1, 2.5, 30
    String 文字列 “犬”, “Dog”, “20”
    Object オブジェクト {}, [] ※配列もオブジェクト型

    実際にはさらに多くの型が存在しますが、まずは上記の型の名前だけでも認識しておくようにしましょう。

     

    typeof演算子とは

    JavaScriptの実装の中で、ある値がどの型に分類されているかを判断するために使われるのがtypeof演算子です。

    typeof演算子の主な使用目的は、「値の型をチェックすることでコードの安全性を担保すること」です。

    次の章から、具体的にどのように使うのかを見ていきましょう。

     

    [PR] フロントエンドで挫折しない学習方法を動画で公開中

    typeof演算子の使い方

      typeof演算子の使用方法は以下の通りです。

      typeof 値
      

       

      具体的にいくつか値を当てはめてみましょう。

      //Boolean
      typeof true //-> 'boolean'
      
      //Number
      typeof 123 //-> 'Number'
      
      //Object
      typeof {name : '太郎'} //-> 'object'

       

      実際のコードでは、if文の条件などとして記述することで型をチェックします。

      //ある値の型がNumberであれば、コンソールに「値はNumber型です」と表示する
      const num1 = 10;
      const num2 = '10'; //これはString型
      
      if (typeof num1 === 'number') {
        console.log('num1はNumber型です'); //num1はNumber型なので、この処理は実行される
      }
      
      if (typeof num2 === 'number') {
        console.log('num2はNumber型です'); //num2はString型なので、この処理は実行されない
      }

       

      typeof演算子の実装例

      ここでは実際に、typeof演算子を用いて一連の実装をしてみましょう。

      仕様は、「関数に渡された引数がString型であることをチェックして、他の型であればアラートを表示する」ものとします。

       

      実装は以下の通りです。

      //このコードはブラウザのコンソールに直接記述しても実行できます。
      const checkType = (value) => {
        //valueの型が'string'でなければ、という条件
        if (typeof value !== 'string') {
          //型チェックにクリアしなかった場合の処理
          alert('渡された値がString型ではありません!');
          return;
        }
      
        //型チェックにクリアした場合の処理
        alert('処理の継続が可能です。')
      }
      
      checkType(30); //この引数をいろいろ入れ替えて実行してみましょう。

      上記のコードをそのまま実行すると、Number型である30を渡してしまっているため「渡された値がString型ではありません!」と出力されるはずです。

      また、if文でチェックを行い、チェックにクリアしなければreturnして以降の処理を行わないという実装はよく出てきますので、あわせて覚えておくとよいですよ。

       

      【応用】typeof演算子とinstanceof演算子の違い

      ※本章はやや発展的な内容です。JavaScriptのクラスについての学習がまだの方は、本章は読み飛ばしても構いません。

      typeofと似たような演算子にinstanceof演算子というものがあります。

      instanceof演算子を使うと、オブジェクトがあるクラス、またはそれを継承しているクラスに属しているかを確認できます。

      class Car {
        constructor (name, size) {
          this.name = name;
          this.size = size;
        }
      }
      
      const car1 = new Car('軽自動車', 'small');
      
      //car1がCarクラスのインスタンスであるかをチェック
      //car1 instanceof Car === true と同じ意味
      if (car1 instanceof Car) {
        console.log('car1はCarのインスタンスです')
      }

       

      大石ゆかり

      内容が分かりやすくて良かったです!

      田島悠介

      ゆかりちゃんも分からないことがあったら質問してね!

      大石ゆかり

      分かりました。ありがとうございます!

       

      JavaScriptを学習中の方へ

      これで解説は終了です、お疲れさまでした。

      • つまずかず「効率的に」学びたい
      • 副業や転職後の「現場で使える」知識やスキルを身につけたい

      プログラミングを学習していて、このように思ったことはありませんか?

      テックアカデミーのフロントエンドコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

      合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、JavaScript・jQueryを使ったWebサービス開発を学べます。

      まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

      時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!