两种:基础数据类型和引用数据类型
基础数据类型:string(字符串)undefined(未定义) null(空) number(数字) boolean(布尔值)
引用数据类型:array(数组) object(对象) function(函数)
1、typeof:无法区分null、对象、数组、Map、Set、WeakMap、WeakMap、RegExp等
通过构造函数创建的变量typeof后都是object
2.instanceof判断:只能判断通过构造函数创建的变量,字面量创建的变量无法判断;只能区分对象是否存在目标对象的原型链上
3.通过构造函数的名称判断:不能判断null和undefined;构造函数的指向是可以改变的,因此会存在类型判断不准确
4.toString:能够校验所有的数据类型,但不能判断谁是谁的实例