三元表达式之理解/jquery源码分析之$.inArray实现
2015-08-18 12:08
399 查看
每次看到三元表达式就会惶惶然分不清如何读,正如语文中的断句一样,jquery源码中的三元表达式更是不知如何断句。
附jquery中的inArray实现。
大家熟悉jquery的应该都不陌生inArray的用法。在源码实现中,先判断了arr是否存在,如果不存在,则可直接返回-1,否则进行后续判断,当存在indexOf方法时,则直接使用call来调用indexOf方法。
否则继续。
在jquery代码中处处体现代码构建者对于javascript的深刻理解,譬如这里对arr.length的缓存,接下来进入我们的重头戏。
下面那句到处应该怎么理解。
是i=i?这样断么。好像不太对哦。完全理解不通。其实不然,
这是群里朋友给予我的三元表达式的断句方法,所以在这里的应用就是:
给 i 赋值后面自i?i<0?开始的整个句子。后面的判断应该是若i不存在,则给 i 赋值于0,即是从数组开头处找起,否则判断存在的i是否小于0,若是,则给i赋值为Math.max(0,length+i),否则赋值为i。
后续得到的i则是我们需要从数组开始查找元素elem的位置。
也就是这个inArray的用法。结束啦。。。。代码界的小菜小菜
附jquery中的inArray实现。
大家熟悉jquery的应该都不陌生inArray的用法。在源码实现中,先判断了arr是否存在,如果不存在,则可直接返回-1,否则进行后续判断,当存在indexOf方法时,则直接使用call来调用indexOf方法。
否则继续。
在jquery代码中处处体现代码构建者对于javascript的深刻理解,譬如这里对arr.length的缓存,接下来进入我们的重头戏。
下面那句到处应该怎么理解。
是i=i?这样断么。好像不太对哦。完全理解不通。其实不然,
这是群里朋友给予我的三元表达式的断句方法,所以在这里的应用就是:
给 i 赋值后面自i?i<0?开始的整个句子。后面的判断应该是若i不存在,则给 i 赋值于0,即是从数组开头处找起,否则判断存在的i是否小于0,若是,则给i赋值为Math.max(0,length+i),否则赋值为i。
后续得到的i则是我们需要从数组开始查找元素elem的位置。
也就是这个inArray的用法。结束啦。。。。代码界的小菜小菜
相关文章推荐
- jquery对象与dom对象的相互转化
- jquery 操作DOM的基本用法分享
- JQuery实现数字滚动增加的效果
- jQuery效果总结
- jQuery实战——jQuery本质是一个javascript函数
- Jquery动画第二部分
- jQuery实现的漂亮表单效果代码
- jQuery操作dom
- jquery chosen 默认选中及事件的问题
- jQuery层次选择器
- jquery获取当前时间
- jquery实现select下拉框美化特效代码分享
- jQuery基本选择器
- Jquery动画第一部分
- 基于Jquery的原生态dialog弹出窗口-zapWindow
- jQuery学习二
- jQuery学习一
- jquery animate 动画效果使用说明
- JQuery autocomplete ajax 实现自动完成
- jquery 元素控制(附加元素/其他内容)引进和应用