node.jsに関する記事一覧→ node.jsのまとめ
インスタンスのクラスを調べようとして typeof を使っても objectとしか返ってこない時があって困る事がありますが
きちんとクラス名を調べたい時は Object.prototype.toString を使います
#!/usr/local/bin/node const puts = console.log; const classname = Object.prototype.toString; puts(classname.call({a: 1024, b: 2048})); puts(classname.call(undefined)); puts(classname.call(1)); puts(classname.call(Infinity)); puts(classname.call(null)); puts(classname.call(true)); puts(classname.call([1,2,3])); puts(classname.call("hello")); puts(classname.call(new RegExp())); puts(classname.call(()=>{}));
のようにします
今回の例だと
[object Object] [object Undefined] [object Number] [object Number] [object Null] [object Boolean] [object Array] [object String] [object RegExp] [object Function]
という結果が得られます
いちいち call するのが億劫だという場合は
#!/usr/local/bin/node const puts = console.log; const classname = (obj)=>{return Object.prototype.toString.call(obj)}; puts(classname(new RegExp()));
みたいにすればいいですね