前端面试基础面试题——7

1.一个 div,有几种方式得到这个 div 的 jQuery 对象?

2.是否知道自定义事件? jQuery 里的 fire 函数是什么意思,什么时候用?

3.针对 jQuery 的优化方法?

4.jQuery 通过哪个方法和 Sizzle 选择器结合的?

5. jQuery 对象的特点?

6.介绍下 Promise. all 使用、原理实现及错误处理?

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

8.jQuery 与 jQuery UI、jQuery Mobile 区别?

9.jQuery.fn 的 init 方法返回的 this 指的是什么对象?为什么要返回 this?

10. jquery.extend 与 jquery.fn.extend 的区别?


 

1.一个 div,有几种方式得到这个 div 的 jQuery 对象?

根据id:("div#id")或("#id");

根据class:("div.class")或("div.class")或(".class");

根据标签名:$("div");

根据属性:$("div[attribute='value'"]。

2.是否知道自定义事件? jQuery 里的 fire 函数是什么意思,什么时候用?

第1种是把那个函数放到ready函数外面。yuan 

第2种是在ready函数里面加上window.deleteStu = deleteStu;

即:  $(function(){ function deleteStu(id){ alert(id); } window.deleteStu =  deleteStu; } 

callbacks.fire() 函数用于传入指定的参数调用所有的回调。

3.针对 jQuery 的优化方法?

缓存jquery对象,减少获取次数。

使用ID选择器去选择元素,因敏泛为它会直接侧泪映射为JavaScript中的getElemengById()

利用链式编程使得js更轻便。

使用子查询,缓存附件元素以便于后续的操作。

4.jQuery 通过哪个方法和 Sizzle 选择器结合的?

Sizzle 选择器采取 Right To Left 的匹配模式,先搜寻所有匹配标签,再判断它的父节点。

5. jQuery 对象的特点?

1.一款轻量级的js框架

JQuery核心js文件才几十kb,不会影响页面加载速度。与Extjs相比要轻便的多。

2.丰富的DOM选择器

JQuery的选择器用起来很方便,好比要找到某个dom对象的相邻元素js可能要写好几行代码,而JQuery一行代码就搞定了,再比如要将一个表格的隔行变色,JQuery也是一行代码搞定。

3.链式表达式

JQuery的链式操作可以把多个操作写在一行代码里,更加简洁。

4.事件、样式、动画支持

JQuery还简化了js操作css的代码,并且代码的可读性也比js要强。

5.Ajax操作支持

JQuery简化了AJAX操作,后台只需返回一个JSON格式的字符串就能完成与前台的通信。

6.跨浏览器兼容

JQuery基本兼容了现在主流的浏览器,不用再为浏览器的兼容问题而伤透脑筋。

7.插件扩展开发

JQuery有着丰富的第三方的插件,例如:树形菜单、日期控件、图片切换插件、弹出窗口等等基本前台页面上的组件都有对应插件,并且用JQuery插件做出来的效果很炫,并且可以根据自己需要去改写和封装插件,简单实用。

8.可扩展性强

JQuery提供了扩展接口:JQuery.extend(object),可以在JQuery的命名空间上增加新函数。JQuery的所有插件都是基于这个扩展接口开发的。

6.介绍下 Promise. all 使用、原理实现及错误处理?

对于 Promise.all(arr) 来说,在参数数组中所有元素都变为决定状态后,然后才返回新的 promise。

 错误处理:1、全部改为串行调用(失去了node 并发优势)

                   2、当promise捕获到error 的时候,代码吃掉这个异常,返回resolve,约定特殊 格式表示这个调用成功了。

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

JQuery.extend() 函数用于将一个或多个对象的内容合并到目标对象。

深度拷贝的方式(把extend函数的第一个参数设置为true),把p(对象)的属性合并到jQuery($)上。

$.extend(true,$,p);

8.jQuery 与 jQuery UI、jQuery Mobile 区别?

jQuery 是 JS 库,兼容各种浏览器,主要用作更方便地处理 DOM、事件、动画、AJAX(主要功能选择器、属性修改、事件绑定)。

jQuery UI 是建立在 jQuery 库上的一组用户界面交互、特效、小部件及主题。

jQuery Mobile 以 jQuery 为基础,用于创建“移动Web应用”的框架。

9.jQuery.fn 的 init 方法返回的 this 指的是什么对象?为什么要返回 this?

init()方法中返回的 this 指向 init 的实例对象,而init.prototype等于jQuery.prototype,所以也是jQuery的实例对象;  

返回this是为了实现链式调用。

10. jquery.extend 与 jquery.fn.extend 的区别?

 extend:为jQuery添加类的方法,添加静态的方法。

fn.extend:为jQuery类添加“成员函数“,jQuery类的实列才可以调用这个”成员函数”。

extend的调用不会把方法扩展到对象实例上,引用它的放大需要通过jQuery类实现。

fn.exted的调用把方法扩展到对象的prototype上,所以实例化一个jQuery对象它就具有了这些方法。

 

 

 

 

 

 

你可能感兴趣的:(前端)