jquery 面试,web前端jquery面试题
本文总结了一些基于jQuery的前端面试与大家分享,包括jQuery常见面试问题和移动端常见问题。希望对你有帮助!
jQuery前端面试——含移动端常见问题
1、JQuery的源码看过吗?能不能简单概况一下它的实现原理?
(函数(窗口,未定义){
//将其包装在一个函数域中,也就是所谓的沙箱
var在这里定义的变量属于这个函数域的局部变量,避免全局污染。
//通过函数参数引入当前沙箱需要的外部变量。
//只要保证参数内部提供的接口的一致性,也可以任意替换传入的参数。
window.jQuery=window。$=jQuery
})(窗口);Jquery在jquery.prototype中封装了一些原型属性和方法,为了缩短名称,将其赋给jquery.fn,这是一种非常形象的写法。经常使用一些数组或对象方法,jQuery将它们保存为局部变量以提高访问速度。jquery实现的链式调用可以节省代码,返回的对象都是同一个对象,可以提高代码效率。jquery的优势是链式操作,隐式迭代
2、jQuery.fn的init方法返回的this指的是什么对象?为什么要返回this?
3、jquery中如何将数组转化为json字符串,然后再转化回来?
4、jQuery 的属性拷贝(extend)的实现原理是什么,如何实现深拷贝?
、jQuery中的$.extend浅拷贝
$。extend (a,b):
、jQuery中的$.extend深拷贝
$。extend(真,a,b)010-1000。比如jQuery.extend({
min:函数(a,b) {返回a b?甲:乙;},
max: function(a,b) { return a b?甲:乙;
});
jQuery.min(2,3);//2
jQuery.max(4,5);//5jQuery.extend (target,object1,[objectn])用一个或多个其他对象扩展一个对象,并返回扩展的对象。var settings={ validate: false,limit: 5,name: foo };
var options={ validate: true,name: bar };
jQuery.extend(设置,选项);结果:settings=={validate: true,limit: 5,name: "bar"}:
5、jquery.extend 与jquery.fn.extend的区别?
$。这是什么?$.fn是指jQuery的命名空间,fn上的成员(方法函数和属性)对于每个jQuery实例都是有效的。看看jQuery代码,不难发现。jQuery.fn=jQuery.prototype={
init:函数(选择器,上下文){//.
};原来jQuery.fn=jQuery.prototype因此,它是jQuery.prototype的扩展,即在jQuery类中增加了“成员函数”。jQuery类的实例可以使用这个“成员函数”。
、jQuery.extend(object);
jquery . fn . extend(object);扩展jQuery对象方法jQuery.extend扩展jQuery全局方法
、jQuery.fn.extend(object);
var _slideFun=[
函数(){
$(.一个)。延迟(500)。动画({
顶部:=270像素
},500,_ takeOne);
},
函数(){
$(.两个)。延迟(300)。动画({
顶部:=270像素
},500,_ takeOne);
}
];
$(#demo )。queue(slideList ,_ slide fun);
var _ takone=function(){
$(#demo )。出列( slide list );
};
_ takeOne();
、区别
上的方法描述封装了兼容的事件绑定方法。绑定选定元素上的一个或多个事件的事件处理函数bind(type,[data],fn)绑定每个匹配元素的特定事件的事件处理函数live(type,[data],fn),并将事件处理函数附加到所有匹配元素。即使后来添加了此元素,也要向delegate指定的元素添加一个或多个事件处理程序(选择器,[类型],[数据],fn),并指定发生这些事件时要运行的不同函数:
该方法表明。bind()直接绑定到元素,而。live()通过冒泡绑定到元素。更适合列表类型的那个被绑定到文档DOM节点。的优点。绑定()和。bind()支持动态数据。delegate()是小规模使用的更准确的事件代理,其性能优于。直播()。on()是最新的1.9版本,新的事件绑定机制,整合了之前的三种方式
6、jQuery 的队列是如何实现的?队列可以用在哪些地方?
7、谈一下Jquery中的bind(),live(),delegate(),on()的区别?
。与Id选择器相比,基于类的选择性性能开销很大,因为它需要遍历所有
经常操作的DOM,操作前缓存。最好使用Jquery的链式调用。
例如:
var str=$(a )。attr( href );
for(var I=size;长度;I) {}for循环每个循环查找。数组(arr)的长度属性。在循环开始时设置一个变量存储这个数,可以让循环运行得更快:for (var I=size,length=arr.lengthI长度;I) {}
8、JQuery一个对象可以同时绑定多个事件,这是如何实现的?
jQuery是一个js库,主要提供选择器、属性修改、事件绑定等功能。JQuery UI是在JQuery基础上设计的插件,利用了它的扩展性。提供了一些常用的界面元素,如对话框、拖动行为、调整大小行为等。JQuery本身注重背景,没有漂亮的界面,而jQuery UI则补充了前者的不足,它提供了华丽的展示界面,让人更容易接受。既有强大的后台,也有华丽的前台。jQuery UI是JQuery插件,但只是指JQuery官方维护的面向UI的插件。
9、针对jQuery性能的优化方法?
10、Jquery与jQuery UI 有啥区别?
tap,singleTap,doubleTap,longTap
11、jQuery和Zepto的区别?各自的使用场景?
swipe,swipeLeft,swipeRight,swipeUp,swipeDown
、tap事件
、Swipe事件
12、Zepto的点透问题如何解决?
方案一:直截了当。github上有个fastclick可以完美解决。
window.addEventListener( load ,function() {
fast click . attach(document . body);
},假);方案二:用touchend替换tap事件,停止touchend的默认行为preventDefault()
方案三:延迟一定时间(300ms)处理事件。
、“点透”是什么
、点透的解决方法:
13、移动端最小触控区域是多大?
14、jQuery 的slideUp动画,如果目标元素是被外部事件驱动, 当鼠标快速地连续触发外部元素事件, 动画会滞后的反复执行,该如何处理呢?
15、移动端的点击事件的有延迟,时间是多久,为什么会有?怎么解决这个延时?
方法描述get是jquery []中把jquery对象转换成原生对象的方法,eq()是通过获取数组值把jquery对象转换成原生对象的方法。从对象列表中获取jquery dom对象
16、你从jQuery学到了什么?
17、请指出.get(),[],eq() 的区别。
18、请指出$ 和$.fn 的区别,或者说出$.fn 的用途。
19、jQuery取到的元素和原生Js取到的元素有什么区别
20、原生JS的window.onload与Jquery的$(document).ready(function(){})有什么不同?如何用原生JS实现Jq的ready方法?
函数就绪(FN) {
if(document . addevent listener){//标准浏览器
document . addevent listener( DOMContentLoaded ,function() {
//注销事件,避免重复触发。
document . removeeventlistener( DOMContentLoaded ,arguments.callee,false);
fn();//执行函数
},假);
} else if(document . attach event){//IE
document . attach event( onreadystatechange ,function() {
if(document . ready state== complete ){
document . detachevent( onreadystatechange ,arguments . callee);
fn();//函数执行
}
});
}
};(学习视频分享:web前端教程)以上是基于jQuery总结分享的一些前端面试细节(包括移动端常见问题)。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。