三者都是用来判断对象的数据类型的
1.typeof返回的是一个字符串,表示对象的数据类型,全部以小写表示
上面可以看出null、数组、Date、对象返回的都是object,这样就没法正确的判断对象所属的类型,比如我想判断判断这个对象是不是一个数组这样的话使用typeof就没法判断,而且在这里null的数据类型本也不属于object。typeof对于判断基本的数据类型很有用。
数据类型:
1.基本数据类型:Number、Boolean、null、undefined、Symbol、String
2.引用数据类型:统称为 Object 类型
。细分的话,有:Object 类型
、Array 类型
、Date 类型
、RegExp 类型
、Function 类型
等
2.instanceof是用来判断 A 是否为 B 的实例,只能用来判断引用数据类型
3.constructor指向对象的构造函数
4.toString
toString() 是 Object 的原型方法,调用该方法,默认返回当前对象的 [[Class]] 。这是一个内部属性,其格式为 [object Xxx] ,其中 Xxx 就是对象的类型
判断是否是数组的另外一种方法:Array.isArray([1,2,3])
貌似除了new Function之外所有new出来的对象typeof出来的类型都是object,typeof(Array)、typeof(new Function)都是function这是为啥?