无他,唯手熟尔-前端实习面试题篇

9,355 阅读8分钟

以下基本是我在面试中遇到的所有问题,给大家做一个参考。除2月13和14日为现场面试以外,其余均为电话面试。我的本意不是让大家背答案,所以没有把面试公司的名字写出来,只是想给不知道如何准备面试的同学一些启发。我面的几家大厂基本不会问框架的,但是很多公司的预期比较单一,比如需要你会哪些技术栈,所以根据对应的公司去准备是最好的,不要盲目看面试题。
作者:Icarus
原文链接:无他,唯手熟尔-前端实习面试题篇

前端部分高频的问题还是重基础,如:

  • 对CSS规范的了解和CSS3动画的实现
  • 原型、继承、闭包、事件的了解和应用
  • 跨平台的浏览器兼容问题
  • 跨域的实践和方法
  • 对前端技术的发展是否有了解

2017.02.13

js

手写类继承
手写数组去重
如何遍历对象的属性

new关键字的过程
判断变量类型,如何判断变量是函数
如何判断一个变量是数组
call和apply的作用,区别
手写jsonp实现,发送和回调接收
js实现css的:hover效果
解释事件代理,事件流模型
数据统计,比ajax更简单的方法

css

display属性的值和介绍
响应式布局的方法,并详细解释

box-sizing的属性值及区别
css3实现动画
移动端调试的方法
移动端和PC和微信兼容性问题

HTML

有几种Doctype,Doctype的作用
严格模式和混杂模式如何区分,有何意义

其它

gulp-connect原理
为什么要跨域,跨域是什么
是否了解viewport
unicode,utf8,gbk编码的了解,乱码的解决
前端性能优化

主观题

为什么选择前端
介绍实习经历
职业规划和岗位的match程度
实习时间保证

2017.02.14

一面

手写once函数,传入函数参数只执行一次(闭包)
手写debouce函数
分域名请求图片的原因和好处

移动端的适配,rem+媒体查询/meta头设置
box-sizing解释
跨域的N种方法
性能优化
css动画和js动画的区别
实习经历介绍

二面

实现拖拽的功能,自己的思路,pc的思路和移动端思路
手写原生ajax,封装成类promise
对es6的了解
手写生成10个20-50之间的随机数,存在数组中,常见排序方法,数组乱序方法

对技术选型的思考
click在ios上有300ms延迟,原因及如何解决
linux和服务器部署
HTTP请求的方式,HEAD方式?
es6的了解,let和const的区别
严格模式介绍
异步加载js方法

2017.02.16

一面

自我介绍
专业成绩和课程
计算机网络的分层概述
浏览器输入url到完整显示出页面经历的过程,遇到link或者script标签的表现
项目中遇到的难点和印象深刻的地方
无限加载监听scroll如何限制频率
解决文件缓存文件名添加md5戳,如css文件内的路径怎么解决缓存
让你设计一个自动化工具,解决各种文件和各个文件之间的依赖关系
setTimeout,setInterval,requestAnimation之间的区别

二面

如何实现组件化,点击加载组件
是否使用过require.js等组件化工具
你觉得自己薄弱的地方在哪,为什么想要提高这部分能力
性能优化
优化HTTP请求需要全部打包还是拆分,如何拆分?
你的项目经验是由你主导还是只是参与
介绍一下项目中遇到的难点和解决办法
介绍一下你的专业,为什么会选择学前端
平时做一些动效比较多还是实现一些复杂交互比较多
从哪些地方获取前端相关的咨询

三面

自我介绍
介绍一下你的项目经验
拆分文件的大小和个数
js简单合并还是按需加载、按模块加载
遇到问题如何解决
最近半年技术栈有没有更新
谈谈在项目中哪些部分是由你推动并落地的,不局限技术和产品
你认为自己薄弱的地方,准备怎么去改进
你学习的方法和过程是怎样的

2017.02.22

自我介绍
为什么学前端
介绍代表自己水平的项目
如何监控JS对象属性变更
JS实现继承的多种方法
外边距折叠
BFC的了解和用途
HTTP协议的了解,控制缓存的部分有哪些
一个图片url访问后直接下载怎样实现
一个图片列表,一张一张加载,检测到上一张加载完成后再切换下一张
跨域的方法
formdata的了解
认为自己哪方面比较擅长但是没问到

2017.02.28

自我介绍
侧重于CSS还是js
介绍一下HTML的语义化
了解无障碍吗
是否使用过sass/less做一下介绍
是否了解CSS原生变量
平时用chrome开发会用到什么功能,做介绍
介绍一下盒模型,box-sizing属性
长度单位,em和rem的区别
是否了解css动画
画一条0.5px的直线
实现一个秒针绕一点转动的效果,transform-origin
选择器的优先级,伪类选择器的优先级
伪类和伪元素的对比,应用
对ES6的了解
proto 和 prototype的联系
如何实现一个私有变量,用getName方法可以访问,不能直接访问
setTimeout和setInterval的了解,倒计时使用哪一个

promise的三种状态
setTimeout和promise的执行顺序
对ajax的了解,原生实现,XMLHTTPRequest兼容性
跨域原因、方法
call,apply,bind
事件委托,addEventListener参数、兼容性
DOM事件流模型
div中两个button,div上事件代理,如何判断点击的是哪个button
检测数组的方法
vue双向绑定实现原理、父子组件通信方法
浏览器缓存的了解
HTTP状态码

2017.03.01

自我介绍
有没有github
喜欢写一些什么类型的文章
对前后端分离的理解,前端mock数据
gulp和webpack的对比,会自己写配置文件吗
webpack常用到哪些功能
介绍sass
对ES6的了解
对css动画和canvas有了解吗
css动画提高性能的方法
实现一个弹窗组件,需要暴露的api和参数
js的垃圾回收机制

2017.03.02

localStorage和Cookie/sessionStorage
对webSocket的了解,和ajax轮询的区别
flex布局的了解
响应式布局的了解,如何实现
垂直居中的方法
你知道box-sizing的哪些属性值
有哪些伪类、伪元素,有什么区别,使用时有什么注意事项,去掉一个属性伪类就不存在了?
是否了解css动画
transition和animation的区别,是否可暂停
margin和translate的百分比根据什么计算
width:200px的无高度div,设置padding-top:60%高度是多少
是否了解svg
评价一下自己的css和js的能力
数组有哪些方法
介绍一下原型链
是否了解伪数组
了解document.ready和window.onload的方法
是否了解同源策略
svn和git的区别
是否了解git flow
性能优化的方法

2017.03.03

介绍一下px、pt、em
有没有实现过复杂的动画
介绍一下box-sizing
说一下对语义化的理解
说一下基本数据类型有哪些
说一些对垃圾回收机制和闭包的了解
iframe的缺点
jQuery链式调用的原理
移动端遇到过的兼容性问题?
响应式布局的方法
接触过的技术?
介绍一下bootstrap的栅格系统是如何实现的
jQuery的$('xxx')做了什么事情
原型链的介绍
继承事件类的方法
字符串去重的方法
性能优化的问题
原生ajax的介绍,readystate的取值,如何设置发送和返回值是json格式
自己实现一个事件委托功能

2017.03.03

自我介绍
如何看待前端技术的发展
介绍一下自己对个人发展的期望
如何看待前端社区的更新速度
点击a标签之后发生的事情
性能优化
是否了解cdn压缩,gzip
是否了解SQL,RX.js
在业界有没有什么大牛级的偶像,想不想成为其中的一个

2017.03.07

自我介绍
博客
觉得自己更偏向于css还是js
了解flex布局吗
js看过的书
如果让你来讲js你会怎么写提纲
变量定义,是否了解变量提升

function test(a){
  var a = "123";
  var a = function() {};
  // 会调用哪个a
}

对后端语言有了解吗
解释一下原型链,原型链末端是什么
解释一下闭包
ES6的class和ES3/5有什么区别
讲一下你最有收获的项目
是怎么解决遇到的问题的
angular和jQuery的优缺点对比