前言
腾讯的面试凉了,预料到了(本人大专)
接着开始面试网易
网易的面试体验挺不错。它的微信公众号会给你叫号,前台小姐姐也会提醒你,每一面结束后都可以找前台小姐姐查询面试结果。而且食堂超级好吃!还可以边吃饭边吸猫!面试地点在一楼大厅。环境舒适,就是座位有点不够用。
不多说了,下面分享一下我的面试经历
一面
- 6道基本技术问题,居中、闭包、块级元素和行内元素等(答案在下方)
- 某个项目的页面布局方式,缓存的设计和优化方式(本地存储和协议相关的)
- ajax 的原生写法(创建 XHR 对象, open() , setRequestHeader() , send() , onreadystatechange )
- vue-router 的原理( hash , HTML5 新增的 pushState )
- 关于 ajax ,我再强调以下方面。
//open()接受3个参数:请求类型、 URL 和是否异步的布尔值
//GET方式通常这样发:
xhr.open("get", "example.php?name1=value1&name2=value2", true)
//可以设定请求头,包括自定义请求头,比方说这样:
xhr.setRequestHeader("MyHeader", "MyValue");
//可以这样取得一个包含所有头部信息的长字符串:
var myHeader = xhr.getResponseHeader("MyHeader");
var allHeaders = xhr.getAllResponseHeaders();
//POST方式有这几个地方要改:
//请求头要重设,数据会以key1=value1&key2=value2的方式发送到服务器
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//获取表单
var form = document.getElementById("user-info");
//序列化表单,发送的内容传入send()
xhr.send(serialize(form));
//也可以这样传值:
var data = new FormData(form);
//再传一点别的
data.append("name", "Nicholas")
xhr.send(data);
- 别的不记得了……
二面
面试官:“你觉得你擅长CSS还是JS?”
我:“JS。”
面试官:“好,那我问你一道CSS的问题。”
我:“???”
- CSS 三栏布局,左右定宽,中间自适应( flex , grid 等)
- 解释构造函数、对象、原型链之间的关系
- 手写代码,实现原型式继承
- 手写代码,实现借用构造函数
- Vue 双向绑定原理(事件监听, getter 和 setter )
- Virtual DOM 和 diff 算法( DOM 树,分层比较, key , DocumentFragment )
- jQuery 链式调用的原理(jQuery链式调用)
- 最近碰到的技术难题,不一定是前端(我答了B站的爬虫与反爬虫)
- 关于反爬虫,请求头中的这两个字段要修改。Host :
- 发出请求的页面所在的域。
Referer :
- 发出请求的页面的 URI 。
注意, HTTP 规范将这个头部字段拼写错了,而为保证与规范一致,也只能将错就错了(这个英文单词的正确拼法应该是 referrer )。
HR面
HR小姐姐似乎对我们学校挺熟悉的,但好像不是校友…… 谈一谈过去做过的项目、面对的难题(和UI的沟通问题,顺便引出我后来自学了平面设计。)
- 又提了提爬虫
- 家在哪里(照实回答就行)
- 未来职业规划(表示出你想在公司长久待下去,继续进步就行)
- 具体的技术发展方向(我答的是“能支持上亿用户使用的前端架构”)
- 为了往这个方向发展,你所做的努力(我答的是“在看《高性能网站建设》、自学后端,顺便提了一下‘东北Java第一人’姜国海老师”)
- 预测一下前端未来的发展趋势(我答的是“自动化”)
- 拿了哪家的offer?
(……还是照实回答吧)
实习时间(我建议把时间段说得宽松一些,到时候真的冲突再商量)
对于面试题我刷了这套比较综合的前端面试题,很多内容面试官都问到了,当然我也刷了其他很多的面试题,总的来说还是这套重合率比较高哈哈
最后的最后,大家都知道答案仅供参考,看了题不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。
需要完整面试题的朋友可以点击蓝色字体获取~
喜欢的小伙伴别忘了给这篇小文章点个小小的赞哟,如果你觉得有用的话,也可以分享给其他小伙伴一起阅读!