JavaScript
初心者

javascriptで便利関数書いてみる#1

経緯

underscore.jslodash.jsに頼りっぱなしはダメだと思い自作で便利関数書いてみることにした。あと、初心者なのでプログラミングの練習。

今回書く関数

今回は最初なので、初心者の私に優しい変数の型を判定する関数を書いていきたいと思います。

コード

function isObject(obj){
    return (Object.prototype.toString.call(obj) === "[object Object]");
}
// isObject({}) -> true
// isObject([]) -> false
// isObject(something class) -> ture


function isArray(array){
    return Array.isArray(array);
}
// isArray([]); -> true
// isArray({}); -> false


function isString(str){
    return (Object.prototype.toString.call(str) === '[object String]');
}
// isString('str'); -> true
// isString(123); -> false


function isNumber(num){
    return (Object.prototype.toString.call(num) === '[object Number]');
}
// isNumber(11); -> true
// isNumber('11') -> false


function isEmpty(obj){
    if(isObject(obj) || isArray(obj) || isString(obj)){
        return (!Object.keys(obj).length);
    }
    return false;
}
// isEmpty({}) -> true
// isEmpty([]) -> true
// isEmpty('') -> true
// isEmpty(11) -> false


function isFunction(func){
    return (Object.prototype.toString.call(func) === "[object Function]")
}
// isFunction(isFunction); -> true
// isFunction(()=>{}); -> true
// isFunction({}) -> false


function isArrowFunction(func){
    return (Object.prototype.toString.call(func) === '[object Function]' && !('prototype' in func) );
}
// isArrowFunction(()=>{}); -> true
// isArrowFunction(isFunction) -> false

参考リンク

JavaScriptの型などの判定いろいろ