icon
icon

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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

監修してくれたメンター

高田 悠

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

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

目次

1時間でできる無料体験!

 

そもそも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型なので、この処理は実行されない
      }

       

      コラム

      コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

      「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
      もちろん、時間も費用もかかることは間違いありません。
      ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

      コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

      • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
      • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
      • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

      安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
      自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

      カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
      無理な勧誘は一切ない ので、お気軽にご参加ください。

      今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

      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のインスタンスです')
      }

       

      大石ゆかり

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

      田島悠介

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

      大石ゆかり

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

       

      1時間でできる無料体験!

      JavaScriptを学習中の方へ

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

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

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

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

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

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

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

      初心者・未経験でもできる。まずはテックアカデミーに相談しよう

      プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

      • ・調べてもほしい情報が見つからない
      • ・独学のスキルが実際の業務で通用するのか不安
      • ・目標への学習プランがわからず、迷子になりそう

      テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
      30分間、オンラインでどんなことでも質問し放題です。

      「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

      「自分に合っているか診断してほしい」
      「漠然としているが話を聞いてみたい」

      こんなささいな悩みでも大丈夫です。

      無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
      ※体験用のカリキュラムも無料で配布いたします。(1週間限定)

      今なら参加者限定の割引特典付き! 無料相談を予約する