前言
人家都说,前端需要每年定期出来面面试,衡量一下自己当前的技术水平以及价值,本人17年7月份,毕业到现在都没出来试过,也没很想换工作,就出来试试,看看自己水平咋样。
以下为我现场面试时候的一些回答,部分因人而异的问题我就不回答了,回答的都为参考答案,也有部分错误的地方或者不好的地方,有更好的答案的可以在评论区评论。
百度 WEB前端工程师 连续五面 全程3约个小时
面试题
1.页面从输入URL到页面加载显示完成,这个过程中都发生了什么?(流程说的越详细越好)
1.输入域名地址
2.发送至DNS服务器并获得域名对应的WEB服务器IP地址;
3.与WEB服务器建立TCP连接;
4.服务器的永久重定向响应(从 http://example.com 到 http://www.example.com)
5.浏览器跟踪重定向地址
6.服务器处理请求
7.服务器返回一个HTTP响应
8.浏览器显示 HTML
9.浏览器发送请求获取的资源(如图片、音频、视频、CSS、JS等等)
10.浏览器发送异步请求
2.浏览器工作原理
1.用户界面 2.网络 3.UI后端 4.数据存储 5.浏览器引擎 6.渲染引擎 7.js解释器
3.浏览器解析过程:
流程:解析html以构建dom树->构建render树->布局render树->绘制render树
4.介绍一下你对浏览器内核的理解?
主要分成两部分:渲染引擎(layout engineer或Rendering Engine)和JS引擎。
渲染引擎:负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。
浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。
JS引擎则:解析和执行javascript来实现网页的动态效果。
最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。
5.常见的浏览器内核有哪些?
6.请描述一下 cookies,sessionStorage 和 localStorage 的区别?
7.请大概描述下页面访问cookie的限制条件
8.如何实现浏览器内多个标签页之间的通信? (阿里)
9.页面可见性(Page Visibility API) 可以有哪些用途?
10.网页验证码是做什么的,是为了解决什么安全问题。
11.为什么利用多个域名来存储网站资源?
12.谈一下你对网页标准和标准制定机构重要性的理解。
13.知道什么是微格式吗?
14.一个页面上有大量的图片,加载很慢,你有哪些方法优化这些图片的加载,给用户更好的体验。
15.谈谈以前端角度出发做好SEO(搜索引擎)需要考虑什么?
16.请写出一些前端性能优化的方式,越多越好
17.描述一下渐进增强和优雅降级之间的不同?
18.webSocket如何兼容低浏览器?(阿里)
19.web开发中会话跟踪的方法有哪些
20.HTTP method
21.HTTP response报文结构是怎样的
22.HTTP状态码及其含义
23.什么是同源:协议相同 域名相同 端口相同
24.关于建站安全防护
25.对前端工程化的理解
26.AMD和CMD是什么?它们的区别有哪些?
27.MVC BFC
28.你如何对网站的文件和资源进行优化?
29.如果网页内容需要支持多语言,你会怎么做?
30.如果设计中使用了非标准的字体,你该如何去实现?
31.如何自学一门新编程语言
32.什么是哈希表?
33.静态网页和动态网页区别:
34.SQL语句的分类
35.什么是弹性布局?
36.编写响应式?
37.常见的浏览器兼容问题?
38.H5新特性
39.C3新特性
40.什么是typescript
41.三大框架的区别
42.spa应用
43.什么是模块化编程?
44.性能优化?
45.什么是HTTP协议?