js如何判断是否是{}的类型

js如何判断是否是{}的类型?因为{}是没有toString()的,这样输出就成了[Object Object]了

Object.prototype.toString.call()判断对象类型,输出是[Object Object]就是对象,typeof那些是判断不了的

instanceof  来判断是不是一个对象

1. typeof;

2.Object.prototype.toString.call;

3.instanceof;

4.constructor;

 

typeof 用来判断基本类型

instanceof  用来判断引用类型。

a = {}  空对象 属于引用类型,除 a instaceof Object 外,再判断下是否为空就行了 Object.keys()

if (a instanceof Object && !Object.keys(a).length) { console.log("{}"); };

  isArray(obj) {

    return obj && typeof obj == "object" && obj.constructor == Array;

  }

 

  isString(str) {

    return str && typeof str == "string" && str.constructor == String;

  }

  // isNumber(obj) {

  //   return typeof obj == "number" && obj.constructor == Number;

  // }

  isDate(obj) {

    return obj && typeof obj == "object" && obj.constructor == Date;

  }

  isObject(obj) {

    return obj && typeof obj == "object" && obj.constructor == Object;

  }

送你了

typeof instanceof 只能知道是个Object,不能保证一定是{},可能是数组、方法等其他的