type的解释

在jquery-19.1.1源码中,type,检查对象的类型是:Boolean/Number/String/Function/Array/Date/RegExp/Object/Error中的一种,返回的结果是类型的小写。

核心代码:

var // [[Class]] -> type pairs
    class2type = {},
    core_toString = class2type.toString;
    
// Populate the class2type map
jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { class2type[ "[object " + name + "]" ] = name.toLowerCase(); }); type: function (obj) { if ( obj == null ) { return String( obj ); } return typeof obj === "object" || typeof obj === "function" ? class2type[ core_toString.call(obj) ] || "object" : typeof obj; }

代码中:

class2type[ core_toString.call(obj) ]处理 class2type["[object object]"]/class2type["[object function]"]/class2type["[object boolean]"]等等这些格式。

JavaScript也自带有一个typeof运算符,可以确定数据的类型。不过,对于绝大多数对象而言,typeof运算符都返回"object",无法区分具体的类型。
jQuery.type()可以更加精确地确定JS内置对象的类型。
弥补了 typeof 的缺陷。

譬如如下代码:
 var dt = new Date();
    console.log(typeof dt); //object
    console.log(jQuery.type(dt)); // date




原文地址:https://www.cnblogs.com/huaan011/p/6992713.html