jQuery你必须了解的常见面试题(下)


jQuery常见面试题

13.jQuery.get()和jQuery.ajax()方法之间的区别是什么?

   答:ajax()方法更强大,更具可配置性,让你可以指定等待多久,以及如何处理错误。

             get()方法是一个只获取一些数据的专门化方法。

14.jQuery中$.get()提交和$.post()提交有区别吗?

      答:相同点:都是异步请求的方式来获取服务端的数据;

             不同点:(1)请求方式不同:$.get()方法使用get方法来进行异步请求的。

                                                              $.post()方法使用post方法来进行异步请求的。

                           (2)参数传递方式不同:get请求会将参数跟在URL后进行传递,而post请求则是作为HTTP消息的实体内容                                                                            发送给Web服务器的,这种传递是对用户不可见的。

                           (3)数据传输大小不同:get方式传输的数据大小不能超过2KB,而post要大的多。

                           (4)安全问题:get方式请求的数据会被浏览器缓存起来,因此有安全问题。

15.jQuery中get()和eq()有什么区别?

   答:get返回的是一个DOM对象,是获取的元素数组。

             eq返回的是一个jquery对象,返回的是jQuery对象,就可以继续调用其他方法,返回的是元素数组就不能调用。

16.jQuery的属性拷贝(extend)的实现原理是什么,如何实现深拷贝?

      答:浅拷贝(只复制一份原始对象的引用)

       var newObject = $.extend({}, oldObject);

             深拷贝(对原始对象属性所引用的对象进行进行递归拷贝)

       var newObject = $.extend(true, {}, oldObject);

17.使用CDN加载jQuery库的主要优势是什么? 

    答:除了报错节省服务器带宽以及更快的下载速度这许多的好处之外,最重要的是,如果浏览器已经从同一个CDN下载类相同的 jQuery 版本,那么它就不会再去下载它一次。因此今时今日,许多公共的网站都将jQuery用于用户交互和动画,如果浏览器已经有了下载好的jQuery库,网站就能有非常好的展示机会。

18.jQuery中的Delegate()函数有什么作用?

      答:delegate()会在以下两个情况下使用到:

           (1)给父元素下的子元素添加事件,代码如下:

              $("ul").delegate("li", "click", function(){

                    $(this).hide();

              });

          (2)当元素在当前页面中不可用时,可以使用delegate()。

19.怎样用jQuery编码和解码URL?

      答:在jQuery中,我们可以使用以下方法实现URL的编码和解码。

             encodeURIComponent(url) and decodeURIComponent(url)

20.JQuery有几种选择器?

      答:(1)基本选择器:#id,class,element,*

             (2)层次选择器:parent > child,prev + next ,prev ~ siblings

             (3)基本过滤器选择器::first,:last ,:not ,:even ,:odd ,:eq ,:gt ,:lt

             (4)内容过滤器选择器: :contains ,:empty ,:has ,:parent

             (5)可见性过滤器选择器::hidden ,:visible

             (6)属性过滤器选择器:[attribute] ,[attribute=value] ,[attribute!=value] ,[attribute^=value] ,[attribute$=value] ,                           [attribute*=value]

             (7)子元素过滤器选择器::nth-child ,:first-child ,:last-child ,:only-child

             (8)表单选择器: :input ,:text ,:password ,:radio ,:checkbox ,:submit 等

             (9)表单过滤器选择器::enabled ,:disabled ,:checked ,:selected

21.jQuery中使用过哪些插入节点的方法

   答:(1)append:向每个匹配的元素内部追加内容。

             (2)appendTo:将所有匹配的元素追加到指定的元素中。

             (3)after:在每个匹配元素之后插入内容。

             (4)insertAfter:将所有配的元素插入到指定元素的后面。

             (5)before:在每个匹配的元素之前插入内容。

             (6)insertBefore:将所有匹配的元素插入到指定的元素的前面。

22.为什么使用jQuery,它有哪些好处?

    答:(1)轻量级、代码简洁

              (2)强大的选择器,出色的DOM操作封装

              (3)有可靠的事件处理机制

              (4)浏览器兼容性好

              (5)支持链式操作

              (6)支持丰富的插件

23.针对 jQuery 的优化方法

    答:(1)尽量使用id选择器代替class选择器

         (2)总是从#id选择器来继承

              (3)使用链式操作

              (4)使用时间委托on绑定事件

              (5)采用jQuery的内部函数data()来存储数据

              (6)使用最新版本的jQuery

你可能感兴趣的:(jQuery你必须了解的常见面试题(下))