Проверка типа данных в JavaScript

function is(type, obj) {
    var cls = Object.prototype.toString.call(obj).slice(8, -1);
    return obj !== undefined && obj !== null && cls === type;
}

Функция возвращает результат сравнения ожидаемого типа данных с реальным значением класса.

Аргумент type может принимать одно из значений String, Number, Boolean, Array, Object, Function, RegExp, Date, Error.

На основе этой базовой функции можно сделать целый набор специальных функций для проверки конкретного типа данных.

var TypeCheck = (function () {

    function is(type, obj) {
        var cls = Object.prototype.toString.call(obj).slice(8, -1);
        return obj !== undefined && obj !== null && cls === type;
    }

    var i, checkers = {},
        types = "String|Number|Boolean|Array|Object|Function|RegExp|Date|Error".split("|");

    for (i = types.length; i--;) {
        checkers["is" + types[i]] = (function (type) {
            return function (obj) {
                return is(type, obj);
            }
        })(types[i]);
    }

    return checkers;

})();