您的位置:首页 > 职场人生

2018网易雷火web前端实习面试面经(已拿offer)

2018-11-09 18:28 806 查看

总概

楼主是电子科技大学大三的学生,初投了一下网易雷火工作室的前端开发实习岗,一周内完成了三面,且在当天已经拿到offer。说一下面试的流程和题目。总体来说,网易会关注一些平时看书或者面经不太会想到的东西,面试官问的比较偏(脱离常规),常规问题,例如:闭包、继承、css画三角形等都没问,反而较为着重计网这一系列地问题。说明前端面试不能只看别人面经,还是要踏实地巩固基础。

流程

我是在上周周五投的实习申请,结果第二周周一就联系我了,由于上课,约了周二的下午面试。之后在周四约了下午的二面,周五上午约了中午的hr面,最后在周五下午发了offer。

一面(视频面试)

在一面中的问题如下:

  • 简单介绍一下自己
  • 简单描述一下从输入网址到页面呈现,发生的事情,越详细越好
简述过程:
DNS查询->三次握手->发送GET请求获取资源->解析html文件中的链接去请求->构造dom树->构造渲染树->根据资源内容渲染出网页->js根据DOMAPI操作执行绑定事件。

加分点:
DNS详细的过程:
查询浏览器缓存->查询本机host->udp发送DNS请求->迭代方式还是递归方式

三次握手过程:
由浏览器向服务器发送一个一个包,其中SYN=1,ACK=0,seq=x;服务器返回一个包SYN=1,ACK=1,seq=y,ack=x+1;浏览器再次发送ACK=1,seq=x+1,ack=y+1

渲染时涉及的重绘、重排
  • 简述script标签加载的方式、他们的区别
defer加载  async加载 同步加载 动态添加script
  • script标签放在head里面会怎样,为何放在尾部
  • css文件为何放在head中,放在尾部会怎样
  • 深度优先遍历和广度优先遍历的区别。各个的优点
  • react最近发生的大事件:
function可以实现原本只能class实现的生命周期钩子,state
  • css选择器,优先级,计算方式
行间样式>内联样式>外部文件

选择器种类:
1.id选择器( # myid)
2.类选择器(.myclassname)
3.标签选择器(div, h1, p)
4.相邻选择器(h1 + p)
5.子选择器(ul > li)
6.后代选择器(li a)
7.通配符选择器( * )
8.属性选择器(a[rel = "external"])
9.伪类选择器(a:hover, li:nth-child)

权重:
第一等:代表内联样式,如: style=””,权值为1000。
第二等:代表ID选择器,如:#content,权值为0100。
第三等:代表类,伪类和属性选择器,如.content,权值为0010。
第四等:代表类型选择器和伪元素选择器,如div p,权值为0001。 通配符、子选择器、相邻选择器等的。如*、>、+,权值为0000。 继承的样式没有权值。 同等权重,后面覆盖前面的 !important优先级最高
  • 正则表达式中^的作用有哪些
  • 前端性能优化相关的
  • user-agent有了解过吗?有什么作用
  • 垂直居中的方式:float、absolute、flex

到这里大概面了45分钟,然后就结束面试了。在这些问题中我答算法那一题不是特别好,面试官表示理解,我直接说不太清楚就到下个环节了。

二面(视频面试)

接到二面电话是第二天下午,我当时正在地铁上,然后和hr约了晚上7:30的视频面试。到了7:30面试官准时接通,问题如下

  • 介绍一下你自己
  • 怎么解决前端的跨域问题?
jsonp、CORS
  • 什么是同源策略?
ajax只允许在协议、域名、端口相同的url发生
  • 域名和它对应的ip地址同源吗?
不同源
  • 一个域名如果对应多个ip同源吗?
同源
  • option请求是什么,有什么作用?
在ajax发送请求前预发送,查看后端支持哪些请求
  • put、post请求的区别,应用的场景
POST:
用于提交请求,可以更新或者创建资源,是非幂等的,举个例子:
在用户注册功能上,每次提交都是创建一个用户账号,这个时候就用POST。
ESTful URL地址应为:/user/creation?user_name=&pwd=

PUT:
用于向指定URL传送更新资源,是幂等的。还是用户模块,比如修改用户密码
虽然提交的还是账户名跟用户密码这个俩个必填参数,但是每次提交都只是更
新该用户密码,每次请求都只是覆盖原先的值。此时就该用PUT。
  • 你做过文件上传、那么如果我要上传4个G的文件该怎么做
ajax分片上传,贴一个博客:
https://blog.csdn.net/weixin_41639095/article/details/82621686
  • 你了解后端如何存贮文件吗?判断文件修改过是怎么做的?
数据库存储文件路径,利用md5值
  • js的原型链
function A(){}
function B(){
A.call(this)
}
B.prototype = Object.creat(A.prototype)
B.prototype.constructor = B
  • 你觉得js的继承和java的继承有什么区别
java中是,子类直接获得父类非私有属性和方法,是一个拷贝,在创建实例后再去修改父类的方法,子类实例不会有改变。

js中多用原型链继承(ES6中class),子类是通过原型链调用父类方法的,当子类实例创建以后,修改父类prototype里面的方法,子类实例也会做出相应改变。
  • prototype是干什么的?
prototype表示了一个类的属性的集合。当通过new来生成一个类的对象时,prototype对象的属性就会成为实例化对象的属性。

function B(){}
let A = new b();

A.__proto__ === B.prototype
  • js中的深拷贝和浅拷贝是怎么样的
  • js在调用函数时,是值传参还是引用传参?
值传参,但是传入对象时,修改对象对应的属性,传入的对象会被修改。
  • 网站保持用户登录状态该怎么做?
1. cookie和session
2. 存储用户token
  • csrf是怎样的,如何防止csrf?
跨站请求伪造,利用token
  • react的生命周期、它的钩子。
  • webpack会用吗?
  • 简单的几个linux命令:find netstate
  • sql语句:如果我要更改数据库A中表B的C列字段D,该如何写
  • 你有什么问题想要问我的吗?

三面,hr面(电话面试)

二面面完之后,第二天早上hr就打电话约了中午1:30的面试,问题如下:

  • 简单介绍一下自己
  • 你觉得自己项目中最有成就感的是哪个,为什么?
  • 你遇到了困难吗,该怎么解决?
  • 你是如何发现困难的,想了什么办法优化?
  • 为什么用这种优化方式?
  • 你平时是如何学习的,又是如何利用自己学习的知识的?
  • 你对自己的规划是怎样的?

大概30分钟,就面完了,然后hr小姐姐给我说,会在一周内通知结果。

offer get

中午面完,下午大约4:30左右,就通知我面试通过,给我说了一些薪资和福利相关的内容。然后要了个人信息。

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: