JavaScript 判断数据类型的4种方法
本文提供四种方法判断js数据类型,这里记录了它们之间的差异,分别是 typeof 运算符、instanceof 运算符、constructor 属性、object.prototype.tostring 方法。
一、使用 typeof 判断数据类型
控制台输出如下:
测试 number -> number
测试 boolean -> boolean
测试 string -> string
测试 null -> object
测试 undefined -> undefined
测试 nan -> number
测试 function -> function
测试 object -> object
测试 array -> object
测试 date -> object
测试 error -> object
测试 regexp -> object
测试 symbol -> symbol
测试 map -> object
测试 set -> object
总结:
1、typeof只能判断:
- string(返回string),
- number(返回number),
- boolean(返回boolean),
- undefined(返回undefined),
- function(返回function),
- symbol(返回symbol)
2、对于new构造出来的都是返回object
3、对于object和array都是返回object
二、使用 instanceof 判断数据类型
控制台输出如下:
测试 number -> false
测试 boolean -> false
测试 string -> false
测试 nan -> false
测试 function -> true
测试 object -> true
测试 array -> true
测试 date -> true
测试 error -> true
测试 regexp -> true
测试 symbol -> false
测试 map -> true
测试 set -> true
测试 new number -> true
测试 new boolean -> true
测试 new string -> true
总结:
1、不能判断 null,undefined
2、基本数据类型 number,string,boolean 不能被判断
3、instanceof 用来判断对象是否为某一数据类型的实例,
上例中1,true,''不是实例,所以判断为false
三、使用 constructor 判断数据类型
控制台输出如下:
测试 number -> true
测试 boolean -> true
测试 string -> true
测试 nan -> true
测试 function -> true
测试 object -> true
测试 array -> true
测试 date -> true
测试 error -> true
测试 regexp -> true
测试 symbol -> true
测试 map -> true
测试 set -> true
总结:
不能判断null,undefined,其它的都可以
四、使用 object.prototype.tostring 判断数据类型
控制台输出如下:
测试 number -> [object number]
测试 boolean -> [object boolean]
测试 string -> [object string]
测试 null -> [object null]
测试 undefined -> [object undefined]
测试 nan -> [object number]
测试 function -> [object function]
测试 object -> [object object]
测试 array -> [object array]
测试 date -> [object date]
测试 error -> [object error]
测试 regexp -> [object regexp]
测试 symbol -> [object symbol]
测试 map -> [object map]
测试 set -> [object set]
总结:
目前最完美的判断数据类型的方法
结语:以上为笔者的测试和总结。如有误或不完整地方,欢迎各位老铁指正。
以上就是javascript 判断数据类型的4种方法的详细内容,更多关于javascript判断数据类型的资料请关注其它相关文章!