当前位置: 代码迷 >> 综合 >> javascript检测数据类型的四种方式
  详细解决方案

javascript检测数据类型的四种方式

热度:74   发布时间:2024-02-28 21:16:18.0

typeof

typeof能检测出来的数据类型:

number、string、boolean、undefined、object、function、symbol

【注】其中function虽然∈对象,但是其有自身的某些属性及方法,因此可以单独检测出来

问题:对于引用数据类型:Array、Object等无法分别是具体哪个,只能检测出∈object

 

instanceof

运算符主要用于检测针对使用typeof时对于引用数据类型(不是Function)时可以检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。

例如  

 <script>var arr=['1','2'];var obj={name:"dhh",age:19}console.log(obj instanceof Object)        //trueconsole.log(arr instanceof Array);        //trueconsole.log(arr instanceof Object);        //true</script>

问题:数组检测出来既∈Array,也∈Object

【注】不能检测由字面量方式创造的基本数据类型

 

constructor

constructor 属性返回对创建此对象的数组函数的引用。

主要解决了针对instanceof不能准确检测出来的情况

console.log(arr.constructor===Array);    //true
console.log(arr.constructor===Object);    //false

 

 

Object.prototype.toString.call(value)

该方式可以检测任意数据类型

 

  相关解决方案