时间:2021-05-26
大家都知道判断数据类型的方法有很多。我们常用的有typeof但是,这个方法有一定的局限性。
typeof null// "object" typeof [8]// "object" typeof {}// "object" typeof function(){}// "function"typeof 2//"number" typeof ""//"string" typeof true//"boolean" typeof undefined//"undefined" typeof Symbol(2)// "symbol"typeof 无法区分null 数组和对象,通常我们会区分判断Array和Object
有时会用instanceof 来判断是不是一个对象的实例子
[] instanceof Array // true 这种方法可以判断数组,不能区分对象[] instanceof Object// true null instanceof Object// false 也不能区分null下面介绍一种方法,对每一种数据类型都实用。
toString.call(function(){})// "[object Function]" toString.call(null)//"[object Null]" toString.call([2])"[object Array]" toString.call(undefined)//"[object Undefined]" toString.call('stjd')//"[object String]" toString.call(1)//"[object Number]" toString.call(true)//"[object Boolean]" toString.call(Symbol(3))// "[object Symbol]" toString.call({q:8})//"[object Object]"再来思考, toString.call([2]) 意思就是改变方法中的this指向,指向传递进去的参数,也就是[2]。那我这样写不是更直观吗?[2].toString()。结果
[2].toString()//"2" var obj = {a: 67} console.log(obj.toString()) // [object Array]对比上面两个返回的值是不一样的。这是因为[2].toString()调用的是数组的toSting()方法,而不是对象的toSting()方法。Array改写了Object的toString方法。
toSting.call()实际上就是 Object.prototype.toSting.call()
console.log(Object.prototype.toString.call([33])) // [object Array]而[2].toSting()实际上是
console.log(Array.prototype.toString.call([2])) //2使用的过程中,可以这样封装函数
function isType(type) { return function(obj) { return {}.toString.call(obj) == "[object " + type + "]" } } var isObject = isType("Object") var isString = isType("String") var isArray = Array.isArray || isType("Array") var isFunction = isType("Function") var isUndefined = isType("Undefined")总结
到此这篇关于toString.call()通用的判断数据类型方法的文章就介绍到这了,更多相关toString.call()判断数据类型内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
数据类型判断的方法在探索数据类型判断方法的时候我们需要知道JS中有哪些数据类型:我们可以把JS中数据类型分为两类:1.基本数据类型:Undefined、Null
python怎么区分不同数据类型?Python判断变量的数据类型的两种方法一、Python中的数据类型有数字、字符串,列表、元组、字典、集合等。有两种方法判断一
C#判断数据类型的简单示例代码:复制代码代码如下:inti=5;Console.WriteLine("iisanint?{0}",i.GetType()==ty
在javascript中,typeof和instanceof是用来判断数据类型比较通用的两个方法,这篇文章的目的是通过对这两个方法介绍来分析其存在的不足并提出优
基本上,javascript中所有数据类型都拥有valueOf和toString这两个方法,null除外。它们俩解决javascript值运算与显示的问题,本文