网易的面试体验挺不错。它的微信公众号会给你叫号,前台小姐姐也会提醒你,每一面结束后都可以找前台小姐姐查询面试结果。而且食堂超级好吃!还可以边吃饭边吸猫!面试地点在杭州研究院一楼大厅。环境舒适,就是座位有点不够用。
一面
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?
(……还是照实回答吧)
实习时间(我建议把时间段说得宽松一些,到时候真的冲突再商量)
验证码登录>
验证码登录>
自动登录 | 忘记密码?
密码登录>
自动登录