javascript判断数据类型

javascript判断数据类型主要有以下几种方式:

1.typeof
2.instanceof
3.Object.prototype.toString.call()
4.Array.isArray()
5.Number.isNaN()

一、typeof

返回number,string,boolean,undefined,function,object字符串。
其中object,null,array以及通过new关键字创建的基本数据类型,返回的都是object字符串。

typeof("str") //string
var str = new String("str")
typeof(str) //object

二、instanceof

返回true/false。
判断变量是否为某个对象的实例。
其中通过字面量创建的number,boolean,string判断其对应基本数据类型时,均会返回false,必须使用new关键字方式创建的number,boolean,string才会返回true。
undefined和null使用会报错。

"str" instanceof String; //false
var str = new String("str")
str instanceof String; //true
null instanceof null; //Uncaught ReferenceError

三、Object.prototype.toString.call()

返回"[object Xxx]"的字符串。
通过返回的字符串,使用indexOf()判断是哪种数据类型。

Object.prototype.toString.call(null) // [object Null]

四、Array.isArray()

返回true/false。
用于判断是否是数组。

Array.isArray([]) //true

五、Number.isNaN()

返回true/false。
用于判断是否是NaN。

Number.isNaN(NaN) //true

总结

1.判断Array:
用instanceof, Object.prototype.toString.call(),Array.isArray()
2.判断undefined:
用 typeof,Object.prototype.toString.call()
3.判断null:
用Object.prototype.toString.call()
4.判断function:
用typeof,instanceof,Object.prototype.toString.call()
5.判断NaN:
用Number.isNaN()

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。