涉及前端框架面试题

Posted JavaScript18

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了涉及前端框架面试题相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

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

JSON.stringify

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

递归赋值

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

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

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

jquery1.7以后就推荐使用on的方式来进行事件绑定了

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

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

3、 Jquery与jQuery UI有啥区别?

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

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

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

jquer mobile相对于zepto功能强大,但是体积也很庞大,zepto非常的轻量

6、针对 jQuery 的优化方法?

a、优先使用ID选择器

b、jquery获取到的DOM元素如果需要多次使用,建议使用一个变量将其保存起来,因为操作DOM的过程是非常耗费性能的

c、在class前使用tag(标签名)

d、给选择器一个上下文

e、慎用 .live()方法(应该说尽量不要使用)

f、使用data()方法存储临时变量

7、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...)么? 能讲出他们各自的优点和缺点么?

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

angular、backbone、knockout都是完整的MV*框架

angular是双向数据绑定的,backbone、knockout是单向数据绑定的

React只是单纯地View层

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

Underscore的熟悉程度

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

在表达式中转换数据<p>姓名为 {{ lastName | uppercase }}</p>

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

 

九、移动APP开发

1、移动端最小触控区域是多大?

移动端的点击事件的有延迟,时间是多久,为什么会有? 怎么解决这个延时?(click 有 300ms 延迟,为了实现safari的双击事件的设计,浏览器要知道你是不是要双击操作。)

十、NodeJs

1、对Node的优点和缺点提出了自己的看法:

*(优点)因为Node是基于事件驱动和无阻塞的,所以非常适合处理并发请求,

因此构建在Node上的代理服务器相比其他技术实现(如Ruby)的服务器表现要好得多。

此外,与Node代理服务器交互的客户端代码是由javascript语言编写的,

因此客户端和服务器端都用同一种语言编写,这是非常美妙的事情。

*(缺点)Node是一个相对新的开源项目,所以不太稳定,它总是一直在变,

而且缺少足够多的第三方库支持。看起来,就像是Ruby/Rails当年的样子。

2、需求:实现一个页面操作不会整页刷新的网站,并且能在浏览器前进、后退时正确响应。给出你的技术实现方案?

至少给出自己的思路(url-hash,可以使用已有的一些框架history.js等)

3、Node.js的适用场景?

1)、实时应用:如在线聊天,实时通知推送等等(如socket.io)

2)、分布式应用:通过高效的并行I/O使用已有的数据

3)、工具类应用:海量的工具,小到前端压缩部署(如grunt),大到桌面图形界面应用程序

4)、游戏类应用:游戏领域对实时和并发有很高的要求(如网易的pomelo框架)

5)、利用稳定接口提升Web渲染能力

6)、前后端编程语言环境统一:前端开发人员可以非常快速地切入到服务器端的开发(如著名的纯Javascript全栈式MEAN架构)

4、(如果会用node)知道route, middleware, cluster, nodemon, pm2, server-side rendering么?

Nodejs相关概念的理解程度

5、解释一下 Backbone 的 MVC 实现方式?

流行的MVC架构模式

6、什么是“前端路由”?什么时候适合使用“前端路由”? “前端路由”有哪些优点和缺点?

熟悉前后端通信相关知识

前端路由就是在不进行后端请求的情况下对页面进行跳转

7、对Node的优点和缺点提出了自己的看法?

优点:

1. 因为Node是基于事件驱动和无阻塞的,所以非常适合处理并发请求,因此构建在Node上的代理服务器相比其他技术实现(如Ruby)的服务器表现要好得多。

2. 与Node代理服务器交互的客户端代码是由javascript语言编写的,因此客户端和服务器端都用同一种语言编写,这是非常美妙的事情。

缺点:

1. Node是一个相对新的开源项目,所以不太稳定,它总是一直在变。

2. 缺少足够多的第三方库支持。看起来,就像是Ruby/Rails当年的样子(第三方库现在已经很丰富了,所以这个缺点可以说不存在了)。


以上是关于涉及前端框架面试题的主要内容,如果未能解决你的问题,请参考以下文章

关于前端 Vue 框架面试题,面试可能会被问到哪些?

Python-前端框架面试题

Web前端面试题框架之03

前端框架(Vue,React)介绍及面试题总结

前端框架(Vue,React)介绍及面试题总结

前端框架(Vue,React)介绍及面试题总结