javascript 判断对象的内置类型

Posted 两面一汤

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 判断对象的内置类型相关的知识,希望对你有一定的参考价值。

判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法.
在toString方法被调用时,会执行下面的操作步骤:
1. 获取this对象的[[Class]]属性的值.
2. 计算出三个字符串"[object ", 第一步的操作结果Result(1), 以及 "]"连接后的新字符串.
3. 返回第二步的操作结果Result(2).
Object.prototype.toString方法返回的字符串,去掉前面固定的"[object "和后面固定的"]",就是内部属性[[class]]的值,也就达到了判断对象类型的目的.
在ES3中,规范文档并没有总结出[[class]]内部属性一共有几种,不过我们可以自己统计一下,原生对象的[[class]]内部属性的值一共有10种.分别是:"Array", "Boolean", "Date", "Error", "Function", "Math", "Number", "Object", "RegExp", "String".

        var data = {
            jsondata: { "name": "Microsoft" },
            arraydata: ["name", "Microsoft"],
            stringdata: "name",
            numberdata: 10,
            booleandata: true,
            undefineddata: undefined,
            nulldata: null,
            functiondata: function () { }
        };

        for (var i in data) {
            isType(data[i]);
        }

        function isType(arg) {
            console.log(Object.prototype.toString.call(arg));
        }

 打印结果如下

参考资料:http://www.cnblogs.com/ziyunfei/archive/2012/11/05/2754156.html

 

以上是关于javascript 判断对象的内置类型的主要内容,如果未能解决你的问题,请参考以下文章

javascript 类型及类型判断

JavaScript 06 内置对象Math,Date,Array

js中通过Object.prototype.toString方法----精确判断对象的类型

javascript内置对象

javaScript之分支判断与内置对象

从 TypeScript 类型定义或 GraphQL 片段定义生成 JavaScript 空对象