一、什么是内存泄漏,哪些常见操作会造成内存泄漏
内存泄露是指一块被分配的内存既不能使用,又不能回收,直到浏览器进程结束。在C++中,因为是手动管理内存,内存泄露是经常出现的事情。而现在流行的C#和Java等语言采用了自动垃圾回收方法管理内存,正常使用的情况下几乎不会发生内存泄露。浏览器中也是采用自动垃圾回收方法管理内存,但由于浏览器垃圾回收方法有bug,会产生内存泄露。
1全局变量引起的内存泄漏
2闭包引起的内存泄漏
3dom清空或删除时,事件未清除导致的内存泄漏
二、简述readyonly与disabled的区别
ReadOnly和Disabled的作用是使用户不能够更改表单域中的内容.但是二者还是有着一些区别的:
1、Readonly只针对input(text/password)和textarea有效,而disabled对于所有的表单元素有效,包括select,radio,checkbox,button等。
2、在表单元素使用了disabled后,我们将表单以POST或者GET的方式提交的话,这个元素的值不会被传递出去,而readonly会将该值传递出去
三、jQuery.fn的init方法返回的this指的是什么对象?为什么要返回this?
this执行init构造函数自身,其实就是jQuery实例对象,返回this是为了实现jQuery的链式操作
四、Zepto的点击穿透问题如何解决?
点击穿透主要是由于两个div重合,例如:一个div调用show(),一个div调用hide();这个时候当点击上面的div的时候就会影响到下面的那个div;解决办法主要有2种:
1.github上有一个叫做fastclick的库,它也能规避移动设备上click事件的延迟响应,