値にtypeof演算子を使用すると、次の文字列のいずれかを返すことができます。
「未定義」 - この値が定義されていない場合
「ブール」 - この値がブールの場合
「文字列」 - この値が文字列の場合
「番号」 - この値が数値の場合
「オブジェクト」 - これがオブジェクトまたはnullの場合
「関数」 - この値が関数の場合
一般的に使用されるTypeofオペレーターの返品値には、数字、文字列、ブール、未定義、オブジェクト、機能が含まれます。のように:
コードコピーは次のとおりです。
var n;
console.log(typeof n);
n = 1;
console.log(typeof n);
n = "1";
console.log(typeof n);
n = false;
console.log(typeof n);
n = {name: "obj"};
console.log(typeof n);
n = new Number(5);
console.log(typeof n);
n = function(){return;};
console.log(typeof n);
これらの例は、Typeofオペレーターのオペランドが変数(メッセージ)または数値リテラルになる可能性があることを示しています。 TypeOFは関数ではなくオペレーターであるため、例の括弧は必要ありません(ただし、使用できますが)。
上記の例から、number()で作成された数字は、typeofによってオブジェクトとして判断され、「オブジェクト」の値を返すことがわかりました。文字列、配列、関数オブジェクト、日付オブジェクト、ブールオブジェクト、エラーオブジェクトなどのJavaScript内蔵オブジェクトの場合はどうすればよいですか?ここでは、次のようなオブジェクトのtoStringメソッドを呼び出すことができます。
コードコピーは次のとおりです。
var n、res;
n = new Number(66);
res = object.prototype.tostring.call(n);
console.log(res);
n = new String( "String");
res = object.prototype.tostring.call(n);
console.log(res);
n = [];
res = object.prototype.tostring.call(n);
console.log(res);
// ...