码迷,mamicode.com
首页 > 编程语言 > 详细

javascript 判断对象的内置类型

时间:2016-10-20 23:56:29      阅读:401      评论:0      收藏:0      [点我收藏+]

标签:

判断某个对象值属于哪种内置类型,最靠谱的做法就是通过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 判断对象的内置类型

标签:

原文地址:http://www.cnblogs.com/lmyt/p/5982715.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!