跳到正文
文章封面

【前端面试题】流行框架

流行框架

1、JQuery的源码看过吗?能不能简单概况一下它的实现原理?

考察学习知识的态度,是否仅仅是停留在使用层面,要知其然知其所以然

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

this执行init构造函数自身,其实就是jQuery实例对象,返回this是为了实现jQuery的链式操作

3、 jquery中如何将数组转化为json字符串,然后再转化回来?

$.parseJSON('{"name":"John"}');

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

递归赋值

5、 jquery.extend 与 jquery.fn.extend的区别?

Jquery.extend用来扩展jQuery对象本身;jquery.fn.extend用来扩展jQuery实例

6、谈一下Jquery中的bind(),live(),delegate(),on()的区别?

7、JQuery一个对象可以同时绑定多个事件,这是如何实现的?

可以同时绑定多个事件,低层实现原理是使用addEventListner与attachEvent兼容处理做事件注册

8、 Jquery与jQuery UI有啥区别?

jQuery是操作dom的框架,jQueryUI是基于jQuery做的一个UI组件库

9、 jQuery和Zepto的区别?各自的使用场景?

jQuery主要用于pc端,当然有对应的jQuerymobile用于移动端,zepto比jQuery更加小巧,主要用于移动端

10、 针对 jQuery 的优化方法?

优先使用ID选择器 在class前使用tag(标签名) 给选择器一个上下文 慎用 .live()方法(应该说尽量不要使用) 使用data()方法存储临时变量

11、 Zepto的点透问题如何解决?

点透主要是由于两个div重合,例如:一个div调用show(),一个div调用hide();这个时候当点击上面的div的时候就会影响到下面的那个div; 解决办法主要有2种: 1.github上有一个叫做fastclick的库,它也能规避移动设备上click事件的延迟响应,https://github.com/ftlabs/fastclick 将它用script标签引入页面(该库支持AMD,于是你也可以按照AMD规范,用诸如require.js的模块加载器引入),并且在dom ready时初始化在body上, 2.根据分析,如果不引入其它类库,也不想自己按照上述fastclcik的思路再开发一套东西,需要1.一个优先于下面的“divClickUnder”捕获的事件;2.并且通过这个事件阻止掉默认行为(下面的“divClickUnder”对click事件的捕获,在ios的safari,click的捕获被认为和滚屏、点击输入框弹起键盘等一样,是一种浏览器默认行为,即可以被event.preventDefault()阻止的行为)。

12、知道各种JS框架(Angular, Backbone, Ember, React, Meteor, Knockout...)么? 能讲出他们各自的优点和缺点么?

知识面的宽度,流行框架要多多熟悉

13、Underscore 对哪些 JS 原生对象进行了扩展以及提供了哪些好用的函数方法?

Underscore的熟悉程度

14、使用过angular吗?angular中的过滤器是干什么用的

在表达式中转换数据

姓名为 {{ lastName | uppercase }}

currency,是什么过滤器——格式化数字为货币格式,单位是$符。

评论

填写昵称与邮箱即可评论,无需登录。

推荐阅读