1、基本类型又叫值类型(数值型、字符型、布尔型、null、undifined)使用typeof检测数据类型;
注:es6中新增了一个symbol数据类型,请参考http://es6.ruanyifeng.com/#docs/symbol
console.log(typeof '3333');//string
console.log(typeof 1111);//number
console.log(typeof 1===2);//false
var haha;
console.log(typeof haha);//undefined
console.log(typeof []);//object
console.log(typeof {});//object
console.log(typeof null);//object
console.log(typeof console.log);//function
typeof null是会返回object,null是一个基本类型,主要是因为null其实是一个字面量,它是一个空指针对象,表示没有指向任何对象,可以参考https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/null
因为typeof无法区分引用类型的(除了函数),所以可以使用instanceof来区分引用类型
2、引用类型(数组、对象、函数)使用instanceof检测数据类型;
var arr = [3,4,3,2];
console.log(arr instanceof Array);//true
var obj = new Person("szxt",24);
console.log(obj instanceof Person);//true
console.log(console.log instanceof Function)
console.log(null instanceof Object);//false