基本数据类型:number、String、null、undefind、symbol(es6)、boolean(布尔值)、BigInt(es10新增)
引用数据类型:object、array、function、Date、RegExp
- typeof 对于基本数据类型判断是没有问题的,但是遇到引用数据类型(如:Array)是不起作用
- 2.如果遇到unll的话也会返回object
3.使用的话前面是判断方法 后面是数据
1.typeof 对于基本的数据类型判断是没有问题的但是对引用数据类型是不起作用的 2.如果遇到unll的话也会返回object
console.log(typeof 1) //number
console.log(typeof 'j') //String
console.log(typeof undefined) //undefined
console.log(typeof null) // object
console.log(typeof {}) // object
console.log(typeof []) // object
- instanceof 判断 new 关键字创建的引用数据类型
- property
··· 不考虑 null 和 undefined(这两个比较特殊)以对象字面量创建的基本数据类型
3. 使用是先是数据 然后是instanceof 判断的类型 返回的是boolean值
注意他不判断基本数据类型 判断的是引用数据类型
console.log('k' instanceof String)
console.log(/a/ instanceof RegExp)
console.log('k' instanceof String)
console.log( 3 instanceof Number)
- constructor(康斯储可特) 似乎完全可以应对基本数据类型和引用数据类型 但如果声明了一个构造函数,并且把他的原型指向了 Array 的原型,所以这种情况下,constructor 也显得力不从心
基本数据类型跟引用数据类型判断都可以
console.log('k'.constructor===String)
- Object.prototype.toString.call() 完美的解决方案
console.log(Object.prototype.toString.call('l'))
-
jquery.type()
如果对象是undefined或null,则返回相应的“undefined”或“null”。