Pot.typeLikeOf

{String} Pot.typeLikeOf ({*} o)

Pot.js と PotLite.js で利用可能。

引数 o の型を調べ、その表現を文字列で取得します。

引数 o の型の文字列表現を返します。
typeof 演算子を補完したようなものです。

Pot.typeOf() との違いは、arguments や NodeList も 'array' として返る点です。
それ以外は同じ動作をします。

表現として返る値は以下のうちいずれかになります。

boolean, number, string, function, array,
date, regexp, object, error, null, undefined

o の型の文字列表現を全て小文字で返します。

(function(a, b, c) {
    debug( Pot.typeOf(arguments) );     // 'object' (ECMA-262 3rd Edition)
    debug( Pot.typeLikeOf(arguments) ); // 'array'
})(1, 2, 3);
debug(typeLikeOf(null));                     // 'null'
debug(typeLikeOf(undefined));                // 'undefined'
debug(typeLikeOf(false));                    // 'boolean'
debug(typeLikeOf(true));                     // 'boolean'
debug(typeLikeOf(new Boolean(true)));        // 'boolean'
debug(typeLikeOf(0));                        // 'number'
debug(typeLikeOf(-123.456));                 // 'number'
debug(typeLikeOf(NaN));                      // 'number'
debug(typeLikeOf(Infinity));                 // 'number'
debug(typeLikeOf(new Number(100)));          // 'number'
debug(typeLikeOf('abc'));                    // 'string'
debug(typeLikeOf(new String('abc')));        // 'string'
debug(typeLikeOf([1, 2, 3]));                // 'array'
debug(typeLikeOf(new Array(10)));            // 'array'
debug(typeLikeOf({a: 1, b: 2}));             // 'object'
debug(typeLikeOf(new Object));               // 'object'
debug(typeLikeOf(/[a-z]+/));                 // 'regexp'
debug(typeLikeOf(new RegExp('[A-Z]*')));     // 'regexp'
debug(typeLikeOf((function(){})));           // 'function'
debug(typeLikeOf(new Function('return 1'))); // 'function'
debug(typeLikeOf(new Date));                 // 'date'
debug(typeLikeOf(new Error('hogeError')));   // 'error'