jQuery.type(obj)


version 1.4.3 以降

解説

オブジェクトのJavaScriptにおける組み込みクラス名に関連した文字列を返します。

引数

  • obj
    Object: オブジェクト

戻り値

  • String: 引数が undefined の場合は"undefined"、null の場合は"null"、それ以外の場合は、ブラウザの組み込みクラス名に関連した文字列を返します。

例1:様々な引数を指定し、結果を確認します。
また、typeof 演算子での実行結果も表示します。jQuery.type() との結果の違いを確認してください。

$.each([{}, true, false, 0, new Date(), 'aaa', [], /abc/, function(){}, null, undefined], function(i, value) {
    $("#test_result table tr").eq(++i)
        .append($("<td>").text($.type(value)))
        .append($("<td>").text(typeof value));
});

テスト結果 (#test_result)
obj$.type(obj)typeof obj
{}
true
false
0
new Date()
'aaa'
[]
/abc/
function(){}
null
undefined

内部実装

内部的には、Object.prototype.toString を呼び出し、事前に生成した組み込みクラス名のマップから、文字列を返しています。






jquery-1.4.4.js (Uncompressed) line840-842から抜粋
// 組み込みクラス名と名称のマップを生成
jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
    class2type[ "[object " + name + "]" ] = name.toLowerCase();
});

jquery-1.4.4.js (Uncompressed) line89から抜粋
toString = Object.prototype.toString,

jquery-1.4.4.js (Uncompressed) line523-527から抜粋
// Object.prototype.toString(obj) を呼び出す
type: function( obj ) {
    return obj == null ?
        String( obj ) :
        class2type[ toString.call(obj) ] || "object";
},