持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天
点击查看活动详情
一、jQuery 和 Zepto 的区别?各自的使用场景?
1.相同:Zepto 最初是为移动端开发的库,是 jQuery 的轻量级替代品,因为它的 API 和 jQuery相似,而文件更小。Zepto 最大的优势是它的文件大小,只有 8k 多,是目前功能完备的库中最小的一个,尽管不大,Zepto 所提供的工具足以满足开发程序的需要。大多数在 jQuery 中·常用的 API 和方法 Zepto 都有,Zepto 中还有一些 jQuery 中没有的。另外,因为 Zepto 的 API 大部分都能和 jQuery 兼容,所以用起来极其容易,如果熟悉 jQuery,就能很容易掌握 Zepto。你可用同样的方式重用 jQuery 中的很多方法,也可以方便的把方法串在一起得到更简洁的代码,甚至不用看它的文档。
2.不同:
1)Zepto 更轻量级
2)Zepto 是 jQuery 的精简,针对移动端去除了大量 jQuery 的兼容代码
3)针对移动端程序,Zepto 有一些基本的触摸事件可以用来做触摸屏交互(tap 事件、swipe事件),Zepto 是不支持 IE 浏览器的。
4)DOM 操作的区别:添加 id 时 jQuery 不会生效而 Zepto 会生效
5)事件触发的区别:使用 jquery 时 load 事件的处理函数不会执行;使用 zepto 时 load 事件的处理函数会执行
6)事件委托的区别:
zepto 中,选择器上所有的委托事件都依次放入到一个队列中,而在jquery 中则委托成独立的多个事件
7)width() 与 height()的区别:
zepto 由盒模型(box-sizing)决定,用.width()返回赋值的width,用.css(‘width’)返回 border 等的结果;jquery 会忽略盒模型,始终返回内容区域的宽/高(不包含 padding、border)
8)offset()的区别:
zepto 返回{top,left,width,height}; jquery 返回{width,height}。zepto 无法获取隐藏元素宽高,jquery 可以
9)zepto 中没有为原型定义 extend 方法而 jquery 有
10)zepto 的 each 方法只能遍历数组,不能遍历 JSON 对象。