1.typeof
检测基本数据类型
console.log(typeof 1); //number
console.log(typeof 'ss'); //string
console.log(typeof true); //boolean
console.log(typeof undefined); //undefined
console.log(typeof null); //object
console.log(typeof []); //object
2.instanceof
检测实例对象
console.log([] instanceof Array); //true
console.log(/^q/ instanceof RegExp); //true
console.log([] instanceof Array); //true
console.log(1 instanceof Number); //false
3.constructor
全部数据类型都可以检测,但如果将某个构造函数的原型改掉,会出现错误。
console.log(("1").constructor === String);//true
4.Object.prototype.toString.call()
最安全的
var a = Object.prototype.toString;
console.log(a.call("aaa")); //[object String]