zoukankan      html  css  js  c++  java
  • jquery学习笔记一:数据类型判断 之 小疑惑

    闲来无事想学下jquery,就扒了下jquery(1.7.2)的源码,看到开头前面的工具函数,有个判断数据类型的挺实用的,就果断摘出来用。

    下面两段代码,分别为:

    (1)自己从jquery里摘出来的代码,适当修改了下。

    (2)jquery里面相关部分的代码,有点小疑惑,写在中文注释部分了,求指导。

     代码一:

    var util = function(){
        var class2Type = {};
        var typeArr = "Number String Boolean Array Function RegExp Object Date".split(' ');
        for(var i=0,len=typeArr.length; i<len; i++){
            var type = typeArr[i];
            class2Type['[object '+ type+']'] = type.toLowerCase();
        }
        return {
            type: function(obj){  //jquery里NaN类型没做特殊判断,$.type(NaN)输出为'number',有点不理解
                return ( obj == null || isNaN(obj) ) ? String(obj).toLowerCase() : 
                                                        class2Type[Object.prototype.toString.call(obj)] || 'object';
            },
            isNumber: function(obj){  //
                return this.type(obj) === 'number';
            }
        };
    }();

    代码二:

    class2type = {};
    jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
        class2type[ "[object " + name + "]" ] = name.toLowerCase();
    });
    isNumeric:
    function( obj ) {  //此处若传入参数obj为'1122',结果为true,为何不直接用$.type(obj) === 'number' return !isNaN( parseFloat(obj) ) && isFinite( obj ); },
    type:
    function( obj ) {  //如果参数obj为NaN,$.type(NaN)结果为‘number’,是否有误? return obj == null ? String( obj ) : class2type[ toString.call(obj) ] || "object"; },
  • 相关阅读:
    8-21模拟赛解题报告
    8-20模拟赛解题报告
    8-19模拟赛解题报告
    8-18模拟赛解题报告
    8-27复习(写题)报告
    [省赛训练(DP)]Course Selection System
    Trie(字典树)的基本操作与应用(一般与字符串前缀相关)
    [算法学习]欧拉筛
    构造函数运行的机制
    js基本数据类型之间的转换
  • 原文地址:https://www.cnblogs.com/chyingp/p/2605758.html
Copyright © 2011-2022 走看看