Skip to main content

类型判断

isEmpty

const isEmpty = val => val == null || !(Object.keys(val) || val).length;

如何判断一个对象是 {}

Object.keys(a).length === 0; // or JSON.stringify(a) === '{}'

typeof 返回字符串

  • 原始类型除了 null 返回是 "object"
  • 引用类型除了 function 返回是 "function" 其他都是 "object"

obj instanceof B 返回布尔值

只用来详细判断属于具体的哪一个引用类型(包括对函数和 Element 的判断),B 不是字符串

obj instanceof Element;

Object.prototype.toString.call(obj) 返回字符串

数组、字符串、函数、Date 对象调用 toString 方法,并不会返回[object Object],因为它们都自定义了 toString 方法,覆盖原始方法。所以采用显示绑定上下文的方式去调用。

小问题 Number,String 的区分

var a = '123';
Object.prototype.toString.call(a); // "[object String]"
var b = new String('1234'); // String {"1234"}
Object.prototype.toString.call(b); // "[object String]"