`

jQery中类数组判断的实现原理及代码实现

阅读更多
//第二个类数组对象
//就像其文字所表达的意思,就是像数组,那就得想想数组有什么特性了

//此方法不可运行,需type,each方法配合
//附件里有可运行的代码
function isArrayLike (obj){
	var 
		length=obj.length;
		
	//判断为空
	if(obj==null){
		return false;
	}
	//判断,第一,如果对象中有length===0
	//这种如arguments
	//arguements举例在方法结束地方
				//如果对象中有length>0 and  (length-1 in) obj  形如{0:"1",1:"2",length:2}
				//[div#div1, div#div2, div#div3, item: function]
				//0: div#div1
				//1: div#div1
				//2: div#div1
				//length:3
		 //第二,我们判断的是对象,若是函数直接过,若是window也是直接过
		 //第三种就节点(node)  obj.nodeType===1 && length  值大于等于1//对于这一种既是元素节点,并且属性length大于0
		//第三没有找到对应的类型
		 //第四种数组类型直接通过
	if(isWindow(obj) ||typeof(obj)==="function"){
		return false;
	}
	
	
	//return type(obj)==="array" ||length===0 || (length>0 &&(length-1) in obj);
	//(obj.node===1 &&length)返回值是length,不是boolean,单独作为一种情况
	return type(obj)==="array" ||length===0 || (length>0 &&(length-1) in obj);
}

//这种如arguments
console.info(function(){
	console.info("str "+arguments);//str [object Arguments]
	console.info("str1 "+arguments.length);// str1 0
}());
console.info(function(){
	console.info("str "+arguments);//str  0:"aa" 1:"bb"
	console.info("str1 "+arguments.length);// str1 0
}("aa","bb"));

//到此结束
 
分享到:
评论

相关推荐

    超实用的jQuery代码段

    超实用的jQuery代码段精选近350个jQuery代码段,涵盖页面开发中绝大多数要点、技巧与方法,堪称史上最实用的jQuery代码参考书,可以视为网页设计与网站建设人员的好帮手。《超实用的jQuery代码段》的代码跨平台、跨...

    jQuery判断数组是否包含了指定的元素

    要判断数组中是否包含某个元素,从原理来来说,就是遍历整个数组,然后判断是否相等, 代码如下: var arr = [ “xml”, “html”, “css”, “js” ]; $.inArray(“js”, arr); //返回 3, 如果不包含在数组中,则返回...

    JAVA上百实例源码以及开源项目源代码

     Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...

    jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法

    本文实例讲述了jQuery移动端跑马灯抽奖特效...原理很简单,同样是取随机数,判断这个随机数的大小在100的0-2,2-4,4-8,8-9,9-21,21-22,22-30,30-100之间的哪一个数组内,随机就可判断中哪个奖项。 代码在前面一篇《j

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    jQuery 和Dom关系及jQuery版本 jQuery选择器 实例多选反选取消 删选器以及Tab菜单示例 示例:模态编程框 jQuery 样式以及属性操作 示例:TAB切换菜单 jQuery内容操作 点赞以及jQuery css操作 JQuery高度以及位置操作...

    JAVA上百实例源码以及开源项目

     Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...

    leetcode怎么查看以前提交的代码-interview:面试

    this绑定,判断数组 6、http缓存,cache-control属性 7、项目优化,(nginx配置,跨域,不会。。。) 8、CSS:BFC,隐藏元素,重排和重绘,flex 9、最近有学什么,webpack,loader和plugin区别 10、localStorage和...

    jQuery实现模拟marquee标签效果

    形成环的主要原理在于每张图片一旦判断出了外面的显示窗口就添加到尾部,用append和prepend模拟数组的push()和shift()。  代码如下: HTML <!doctype html> <html> <meta ...

    Java面试宝典2020修订版V1.0.1.doc

    21、数组中有没有length()方法,String中有没有length()方法? 18 23、final, finally, finalize的区别。 18 24、‘==’和equals的区别? 18 25、JAVA中Object类中有哪些常用方法? 19 26、heap和stack有什么区别...

    Java学习笔记-个人整理的

    {1.4.1.1}浮点数原理}{24}{subsubsection.1.4.1.1} {1.4.2}格式化输出浮点数}{24}{subsection.1.4.2} {1.4.3}\texttt {char}}{24}{subsection.1.4.3} {1.4.4}转义字符}{25}{subsection.1.4.4} {1.4.5}Boolean ...

Global site tag (gtag.js) - Google Analytics