借鉴(https://www.cnblogs.com/onepixel/p/5126046.html)
基本类型:String、Number、Boolean、Symbol、Undefined、Null
引用类型:Object
1、typeof 取基本类型数据的类型
使用: typeof(数据) 如: typeof('123')
- 对于基本类型,除 null 以外,均可以返回正确的结果。
- 对于引用类型,除 function 以外,一律返回 object 类型。
- 对于 null ,返回 object 类型。
- 对于 function 返回 function 类型。
2、instanceof 判断数据是不是某类型
使用: (数据 instanceof 类型 ) 如: console.log({} instanceof Object)
- 对应数组可以等于 Object 和 Array
3、constructor
使用: 数据.constructor == 类型 如: [].constructor == Array
-
null 和 undefined 是无效的对象,因此是不会有 constructor 存在的,这两种类型的数据需要通过其他方式来判断。
-
函数的 constructor 是不稳定的,这个主要体现在自定义对象上,当开发者重写 prototype 后,原有的 constructor 引用会丢失,constructor 会默认为 Object
4、toString
使用: Object.prototype.toString.call(数据 ) 如: Object.prototype.toString.call('')
- toString() 是 Object 的原型方法,调用该方法,默认返回当前对象的 [[Class]] 。这是一个内部属性,其格式为 [object Xxx] ,其中 Xxx 就是对象的类型。
对于 Object 对象,直接调用 toString() 就能返回 [object Object] 。而对于其他对象,则需要通过 call / apply 来调用才能返回正确的类型信息。
网友评论