typeof演算子
typeof演算子は
パラメータの型(数値、文字列、オブジェクト)を
判定することができます。この演算子は
型を表す文字列('number'、
'string'、'object')を返します。
nullに対しては、
演算子は'object'を返します(これは
言語の仕様上の既知のエラーです)。関数に対しては、
演算子は'function'を返します。これは
利便性のためであり、'function'という型が
存在するわけではありません。
構文
typeof演算子には2つの構文があります
(どちらの構文も同じように動作します):
typeof パラメータ;
typeof(パラメータ);
例
数値に対してtypeofがどのように動作するか
見てみましょう:
typeof 1;
このコードを実行した結果、
値はnumberとなります:
'number'
例
次に、パラメータとして文字列を指定してみましょう:
typeof 'str';
コード実行の結果:
'string'
例
次に、パラメータとして論理値
trueを指定してみましょう:
typeof true;
コード実行の結果:
'boolean'
例
値undefinedの型が何であるか
見てみましょう:
typeof undefined;
コードを実行した後、
やはりundefinedとなります:
'undefined'
例
空のオブジェクトの型を 調べてみましょう:
typeof {};
コード実行の結果:
'object'
例
次に、空の配列の型を 調べてみましょう:
typeof [];
結果として、やはり
'object'が得られます:
'object'
例
値nullの型を
調べてみましょう:
typeof null;
結果として、やはり
'object'が得られます。これは
言語の仕様上の既知のエラーです:
'object'
例
次に、空の関数の型を判定しましょう:
typeof function() {};
コードを実行した後、
'function'が得られます。
このような型が存在しないにもかかわらずです。この文字列は
関数を判定する際のユーザーの利便性のため
に用意されています:
'function'
例
数値のみを出力する関数を 書いてみましょう:
function printNumber(number) {
if (typeof number === 'number') {
console.log(number);
}
}
printNumber(2);
printNumber('str');
printNumber(3);