如何判断JavaScript数据具体类型
2016-09-08 15:41
801 查看
昨晚做了阿里的题目,让我写一个函数,可以判断数据的具体类型。其实题目很简单的。。。但是真的是自己不太注意吧,写的很糟糕啊。
然后今天就自己写了一个,然后又到晚上搜了下,看看别人的写法,结果发现自己有点思维受限啊,不够开阔啊,那些方法其实都是见过的,可能是自己没有梳理过,或者认真对待。今天就把这些方法整理一下。
1、基本数据类型采用typeof,这个返回的都是很准的。
2、引用类型采用instanceof, 主要针对的是采用new 实例化的对象。
3、根据constructor来判断
其中a-h跟上面的一样,就不重复定义了,注意不带引号的,是要大写
4、toString()方法,这是最通用的,大小写不能写错,有点麻烦
5、可以采用一些某些数据类型采用的方法
比如:string 类型的 replace
regexp类型的test, exec
数组还有一种判断方法:Array.isArray()
date 类型的 getMonth()等
然后今天就自己写了一个,然后又到晚上搜了下,看看别人的写法,结果发现自己有点思维受限啊,不够开阔啊,那些方法其实都是见过的,可能是自己没有梳理过,或者认真对待。今天就把这些方法整理一下。
1、基本数据类型采用typeof,这个返回的都是很准的。
var a = "iamstring."; var b = 222; var c= [1,2,3]; var e = function(){alert(111);}; var f = function(){this.name="22";}; alert(typeof a) ------------> string alert(typeof b) ------------> number alert(typeof c) ------------> object//数组是引用类型的 alert(typeof f) ------------> function alert(typeof e) ------------> function
2、引用类型采用instanceof, 主要针对的是采用new 实例化的对象。
var a = new String("iamstring."); var b = new Number(222); var c = new Array(222,2,4); var e = function(){console.log(111);}; var f = function(){this.name="22";}; var f = function(){this.name="22";}; var h = new Error("foo"); console.log(a instanceof String) //true console.log(b instanceof Number) //true console.log(c instanceof Array) //true console.log(e instanceof Function) //true console.log(f instanceof Function) //true console.log(h instanceof Error) //true
3、根据constructor来判断
其中a-h跟上面的一样,就不重复定义了,注意不带引号的,是要大写
var i="str", arr=[1], num=1; console.log(a.constructor=== String) //true console.log(b.constructor=== Number) //true console.log(c.constructor=== Array) //true console.log(e.constructor=== Function) //true console.log(f.constructor=== Function) //true console.log(h.constructor===Error) //true console.log(i.constructor===String) //true console.log(num.constructor=== Number) //true console.log(arr.constructor=== Array) //true
4、toString()方法,这是最通用的,大小写不能写错,有点麻烦
console.log(Object.prototype.toString.call(a) === ‘[object String]’) -------> true; console.log(Object.prototype.toString.call(b) === ‘[object Number]’) -------> true; console.log(Object.prototype.toString.call(c) === ‘[object Array]’) -------> true; console.log(Object.prototype.toString.call(d) === ‘[object Date]’) -------> true; console.log(Object.prototype.toString.call(e) === ‘[object Function]’) -------> true; console.log(Object.prototype.toString.call(f) === ‘[object Function]’) -------> true;
5、可以采用一些某些数据类型采用的方法
比如:string 类型的 replace
regexp类型的test, exec
数组还有一种判断方法:Array.isArray()
date 类型的 getMonth()等
相关文章推荐
- javaScript如何简单而准确地判断复杂数据类型
- 数据类型:如何判断类型——JavaScript知识小结04
- typeof + instanceof+toString+constructor是如何判断javascript数据类型的
- Javascript如何判断数据类型和数组类型
- Javascript如何判断数据类型和数组类型
- JavaScript之如何判断数据类型的几种方法
- python中如何判断一个变量的数据类型?(原创)
- python中如何判断一个变量的数据类型?(原创)
- javascript 简单高效判断数据类型系列函数 (转) By shawl.qiu
- javascript 判断是否为数组或对象或各种其它数据类型
- 数据类型为NTEXT,用SELECT查询时如何判断字段是否为空
- 怎样判断一个泛型的数据具体是什么类型
- javascript 简单高效判断数据类型 系列函数 By shawl.qiu
- javascript中如何做对象的类型判断
- JavaScript数据类型及判断方法
- 如何从json中拿到数据后判断该数据的类型
- javascript:如何判断浏览器类型
- 如何判断javascript中参数类型,对象类型。
- javascript如何判断变量类型
- 如何判断数据库数据类型 ad0