您的位置:首页> 前端教程> JS教程
文章导航

JavaScript获取对象数据类型

2018-8-19 02:25| 作者: admin| 查看: 2786| 评论: 0|来自: 蚂蚁部落

关于JavaScript数据类型可以参阅JavaScript 数据类型一章节。

在实际应用中,我们可能需要精准的获取一个对象的数据类型,然后再执行相应代码。

可能不少朋友第一个想到的就是使用typeof运算符实现检测功能。

代码实例如下:

[JavaScript] 纯文本查看 复制代码运行代码
console.log(typeof 8)

代码运行比较完美,谷歌控制台运行截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201808/19/022648lr2fyoxmlq8y33jq.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

再来看一段代码实例:

[JavaScript] 纯文本查看 复制代码运行代码
let arr =["蚂蚁部落","前端知识",6];
console.log(typeof arr);

a:3:{s:3:\"pic\";s:43:\"portal/201808/19/022714q9j4utustn2djql2.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

没错,数组确实是object类型,但是我们更希望他能给出精准的结果。

可见typeof在某些时候是力不从心的,更多关于typeof内容可以参阅JavaScript typeof运算符一章节。

精准获取方式如下:

首先给出代码实例,然后再进行分析:

[JavaScript] 纯文本查看 复制代码运行代码
function getType(obj){
  var type = Object.prototype.toString.call(obj).slice(8, -1);
  return type;
}
console.log(getType(new String("antzone")));
console.log(getType(["蚂蚁部落","前端知识",6]));

谷歌控制台运行截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201808/19/022819k3k39wiwi3w9v8x9.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

运行结果非常的完美,下面做一下分析:

虽然ES2015之前没有类这个概念,但是在对象内部具有Class类属性。

Object.prototype.toString方法可以获取类属性,返回值形式如下:

[JavaScript] 纯文本查看 复制代码
[object Class]

如果我们要获取的对象是数组,那么上述方法的返回值就是[object Array],以此类推。

然后用slice方法对字符串进行切割截取,输出结果就比较人性化了。

1

鲜花
1

握手

雷人

路过

鸡蛋

刚表态过的朋友 (2 人)

最新评论

返回顶部