1
2
3
4
5
6
7
8
9
// typeof 操作符可以返回一个值的类型。对于对象(包括数组和 null),typeof 会返回 "object",但它不能区分数组和对象,因此需要额外判断。
typeof value

// 返回 [object Type],value可以是任意值
Object.prototype.toString.call(value)

// instanceof 运算符可以判断一个对象是否是某个构造函数的实例。如果需要判断一个对象是否是 Object 类型的实例,可以使用 instanceof Object。
// 需要注意,instanceof 对数组和对象都会返回 true,因此需要 value !== null 排除 null。
value instanceof Constructor