zl程序教程

您现在的位置是:首页 >  前端

当前栏目

jquery学习笔记一:数据类型判断 之 小疑惑

jQuery笔记学习 判断 数据类型 疑惑
2023-09-14 08:57:55 时间

闲来无事想学下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 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";

},

jquery里判断数组内是否包含了指定的值或元素的方法 本文讲的是在jquery里,如何判断一个数组里是否包含了指定的值,变量,或其它对象元素的方法。 在jquery里,我们可以用$.inArray来判断一个数组里是否包含了指定的值或其它对象元素,来看一个简单的实例: var arr=[ aijquery , jquery , I like it var str= aijquery.
jQuery选择器获取到的是一个对象,所以无论页面上存在或者不存在元素,这个对象都不为空。因此,如果要使用jQuery检查元素再给某个页面上是否存在的时候,应该通过获取到的元素的长度来判断,使用下面的代码: if ($( #tt ).