typeof演算子

typeof演算子は パラメータの型(数値、文字列、オブジェクト)を 判定することができます。この演算子は 型を表す文字列('number'、 'string'、'object')を返します。

nullに対しては、 演算子は'object'を返します(これは 言語の仕様上の既知のエラーです)。関数に対しては、 演算子は'function'を返します。これは 利便性のためであり、'function'という型が 存在するわけではありません。

構文

typeof演算子には2つの構文があります (どちらの構文も同じように動作します):

javascripttypeof パラメータ;
typeof(パラメータ);

例

数値に対してtypeofがどのように動作するか 見てみましょう:

javascripttypeof 1;

このコードを実行した結果、 値はnumberとなります:

javascript'number'

例

次に、パラメータとして文字列を指定してみましょう:

javascripttypeof 'str';

コード実行の結果:

javascript'string'

例

次に、パラメータとして論理値 trueを指定してみましょう:

javascripttypeof true;

コード実行の結果:

javascript'boolean'

例

値undefinedの型が何であるか 見てみましょう:

javascripttypeof undefined;

コードを実行した後、 やはりundefinedとなります:

javascript'undefined'

例

空のオブジェクトの型を 調べてみましょう:

javascripttypeof {};

コード実行の結果:

javascript'object'

例

次に、空の配列の型を 調べてみましょう:

javascripttypeof [];

結果として、やはり 'object'が得られます:

javascript'object'

例

値nullの型を 調べてみましょう:

javascripttypeof null;

結果として、やはり 'object'が得られます。これは 言語の仕様上の既知のエラーです:

javascript'object'

例

次に、空の関数の型を判定しましょう:

javascripttypeof function() {};

コードを実行した後、 'function'が得られます。 このような型が存在しないにもかかわらずです。この文字列は 関数を判定する際のユーザーの利便性のため に用意されています:

javascript'function'

例

数値のみを出力する関数を 書いてみましょう:

javascriptfunction printNumber(number) {
  if (typeof number === 'number') {
    console.log(number);
  }
}

printNumber(2);
printNumber('str');
printNumber(3);

関連項目

  • isNaN関数は、
    NaNかどうかのチェックを行います
  • isFinite関数は、
    数値が有限かどうかをチェックします