面试题总结之综合篇

git 和 svn的区别

渐进增强和优雅降级

  • 渐进增强 :针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。

  • 优雅降级 :一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。

项目中使用过哪些优化方法

页面的渲染过程

优化中会提到缓存的问题,问:静态资源或者接口等如何做缓存优化

页面DOM节点太多,会出现什么问题?如何优化?

你最擅长的技术是什么?

你觉得你在这个技术上的水平到什么程度了?你觉得最高级别应该是怎样的?

浏览器及性能

一个页面从输入 URL 到页面加载完的过程中都发生了什么事情?越详细越好

(这个问既考察技术深度又考察技术广度,其实要答好是相当难的,注意越详细越好)
分为4个步骤:

  • 1.当发送一个URL请求时,不管这个URL是Web页面的URL还是Web页面上每个资源的URL,浏览器都会开启一个线程来处理这个请求,同时在远程DNS服务器上启动一个DNS查询。这能使浏览器获得请求对应的IP地址。

  • 2.浏览器与远程Web服务器通过TCP三次握手协商来建立一个TCP/IP连接。该握手包括一个同步报文,一个同步-应答报文和一个应答报文,这三个报文在 浏览器和服务器之间传递。该握手首先由客户端尝试建立起通信,而后服务器应答并接受客户端的请求,最后由客户端发出该请求已经被接受的报文。

  • 3.一旦TCP/IP连接建立,浏览器会通过该连接向远程服务器发送HTTPGET请求。远程服务器找到资源并使用HTTP响应返回该资源,值为200的HTTP响应状态表示一个正确的响应。

  • 4.此时,Web服务器提供资源服务,客户端开始下载资源。

请求返回后,便进入了我们关注的前端模块

简单来说,浏览器会解析HTML生成DOM Tree,其次会根据CSS生成CSS Rule Tree,而javascript又可以根据DOM API操作DOM
更多

谈一下你所知道的页面性能优化方法?

这些优化方法背后的原理是什么?

除了这些常规的,你还了解什么最新的方法么?

如何分析页面性能?

其它

除了前端以外还了解什么其它技术么?

是否有设计过通用的组件?

请设计一个 Dialog(弹出层) / Suggestion(自动完成) / Slider(图片轮播) 等组件
你会提供什么接口?
调用过程是怎样的?可能会遇到什么细节问题?

对计算机基础的了解情况,比如常见数据结构、编译原理等

什么样的前端代码是好的

高复用低耦合,这样文件小,好维护,而且好扩展。

HTTP状态码

1
2
3
4
5
6
7
8
9
10
11
100 Continue 继续,一般在发送post请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息
200 OK 正常返回信息
201 Created 请求成功并且服务器创建了新的资源
202 Accepted 服务器已接受请求,但尚未处理
301 Moved Permanently 请求的网页已永久移动到新位置
302 Found 临时性重定向
0%