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

发表于:March 19, 2017 at 10:34 AM

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

作者:Icarus 原文链接:无他,唯手熟尔-前端实习面试题篇 前端部分高频的问题还是重基础,如:

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 的优缺点对比