jQuery 和Zepto ?
- Zepto 类库体积小,且实现了触摸屏交互事件,更适合于移动端。
- jQuery 体积达,但对IE 浏览器对兼容性处理更好。
- 推荐在移动端使用Zepto, 在PC 端使用jQuery。
$.map
和$.each
的区别?
$.map
是对数组中的元素进行处理,并返回一个新的数组。注意:当元素为引用类型时,改变数组中成员的属性值,将影响原数组。
$.each
对数组中的元素进行递归,和forEach不同的是回调函数中的参数不同。
jQuery 中Ajax 封装,在项目中如何使用?
- 在项目中需要再次封装,类似多加一层代理,所有的请求将通过代理函数进行处理,然后才会转到 jQuery 的Ajax进行http请求。所有的返回也将会先通过代理函数进行处理,然后再返回response 数据。
- 参考axios 中的拦截机制,reqest 和response 都有拦截机制,对所有http 请求可控制
- 处理所有http 请求中的公共方法,处理loading 加载中状态,http请求错误时统一处理。
- 添加默认参数
- 处理项目前缀
- 处理分页
DOM 原生对象和jQuery对象间的转换?
原生DOM:originDOM
jQuery 对象:JQDOM
原生对象 --> jQuery 对象 : $(originDom) = JQDOM
jQuery 对象 --> 原生对象 : JQDOM[0] = originDOM
为什么选择jQuery ?
- 火热的社区,代表轮子多,插件多个。
- 简化DOM操作原生API
- DOM 操作考虑了浏览器兼容性
- Ajax 封装完善,处理了浏览器兼容性
jQuery 事件中返回false?
常用于阻止事件冒泡以及默认行为。
detach 和remove 的区别?
相同点:都会移除DOM元素。
不同:detach 移除元素会保留该元素的事件,而remove 会删除该元素的同事移除事件绑定。
使用:
为什么移除一个元素,还需要保留该元素事件?使用场景?
可以参考DOM操作文档片段,先将该元素提取出来,再进行DOM操作,批量的增删改操作后,再将处理好的DOM 一次性插入到HTML 中。
onloaded 和 ready 的区别?
- onloaded 是window 对象的属性,ready 是document 的属性。
- onloaded 绑定多个事件时,只会执行一次事件。ready 可以绑定多个事件,每个事件都会执行。
jQuery 项目代码优化?
- 多使用链式操作
- 使用Id选择器
jQuery 设计优点?
- 使用立即执行函数,防止全局变量污染,沙箱机制。
- 链式操作,减少选择DOM的次数,提高性能。
- 在原型中添加属性和方法。
jQuery.fn?
jQuery.fn 指向jQuery 的原型。
网友评论