1、typeof
使用typeof能判断String、Boolean、Number、Undefined
null和Object都为Object类型
2、instanceof、constructor
原理判断原型链能否找到该类型
能判断出String、Boolean、Number、Array、Function、Object(null、object都为Object)
null、object无法区分,undefined无法判断
3、Object.prototype.toString.call() 最全
远离使用原型的toString来判断类型
能判断出String、Boolean、Number、Array、Undefined、Function、Object、Array、Function、Date…
4、判断数组
上2、3
Array.isArrray(obj);
Array.prototype.isPrototypeOf(obj)