08 面试题3-没答案
17. 听到你提到浏览器,你了解浏览器缓存的方式吗?
-
看你有用过Promise,知道Promise有几种状态?
-
你知道
pending
状态可以停止吗? -
那XMLHttpRequest 的
pending
状态可以停止吗? -
知道Promise和setTimeout的执行顺序吗?
-
vue中生命周期中的钩子函数用过哪些?
-
为什么不把数据放在created函数中?
-
对Vue的数据双向绑定有了解吗?
-
了解重绘和回流吗?页面的加载顺序?
-
如何减少回流、重绘?怎样控制只有一部分回流?
-
了解什么算法?快排?
-
还了解什么排序算法?
-
了解二叉查找树吗?
-
有了解什么后端语言吗?知道面向对象的特性吗?
-
知道数据库连接池吗?
-
正则的题目,对比
/^[a-z0-9][a-z]+$/
和/^[a-z0-9][a-z]*$/
的区别? -
CSS3布局,移动端有用过rem吗?布局的话一般怎样布局?
-
Flex布局和传统的其他布局有什么优点?
-
Flex的居中方式有哪些?其他方式有哪些?(居中的方式,文字居中和块级节点居中)
-
display设置inline-block的话,多个之间有间隔应该怎样处理? (父节点font-size: 0)
-
更熟悉那方面的技术栈?
-
对自己项目是怎样设计和选型的?
-
有用到vuex吗?
-
组件之间的通讯怎样做到?
-
有没有在npm上面做过开源的学习?
-
你有使用过闭包吗?
-
模块化的异步加载怎样做?
-
window.onload
执行时间?
9.图片加载完的时候会执行吗?
-
了解JS继承吗?
-
利用原型链的继承有什么缺点吗?
9、说一下原型和原型链
10、有没有自己写过比较复杂的正则?
11、有没有封装过 axios?
12、前后分离的系统,一个请求出错了,如何中断其它请求?
13、如何在 axios 中添加登陆验证?
14、rollup 了解过没?
15、为什么 rollup 打包赘余代码比较少?
7、new 一个对象后发生了什么?
- 讲项目
- 讲lazyloader实现
- 用docker做了什么
- 用webpack做了什么
- 讲flex
- vue响应式原理
-
es6
-
JavaScript异步
- 优化项目
- vue原理,包括计算属性、依赖收集等等
-
用JavaScript的异步实现sleep函数
-
手写快排,时间复杂度,优化
- 手写实现jsonp
- 项目部署,线上问题等等
-
websocket握手过程
-
对vuex的理解,单向数据流
-
设计一个单点登录的系统,类似阿里系那种
-
实现一个联想搜索组件
-
手写函数防抖和节流
-
css实现图片自适应宽高
- 讲flex,手写出flex常用的属性,并且讲出作用
- BFC是什么
- 项目里面的前端鉴权是怎么实现的?
- vue里面的虚拟dom是怎么回事?
- vue双向绑定讲一讲
- 手写函数防抖和函数节流
- 讲讲常用的es6语法,比如let、promise、class等等
- 浏览器渲染过程,回流重绘等等,load、DOMContentLoaded等等事件的触发顺序
-
从小米应用商店里面随便找了一个需求让我现场实现,写伪代码
-
讲项目里面的鉴权和图片懒加载怎么实现的
- 讲vue-lazyloader的原理,手写伪代码
- 讲express框架的设计思想
- 线上日志是如何处理的
- 讲事件循环
-
讲nodejs的eventEmitter的实现
-
讲项目里面做的事情
- 讲vue的响应式原理、依赖收集、监听数组、虚拟dom等等
- 讲express的中间件系统是如何设计的
-
现场从小米应用商店中找出一个需求现场实现,说思路,写关键的代码
-
讲vue-lazyloader源码以及设计
- 使用es5实现es6的class
- websocket握手过程
- 浏览器的事件循环和nodejs事件循环的区别
百思编程(过)
这个公司是猎头推荐的,一家初创公司,CEO比较强势,也算比较有趣。
一面
- 跨域以及解决办法
- 手写一段小算法
- JavaScript的sort方法内部使用的什么排序?
二面
这一面是CEO面,主要问了我的职业规划等等问题,在我没有表现出很强的要去该公司的意愿后,直接给我送走了...
ponyAI-基础架构(过)
一面
- 讲项目里面干了啥
- vue-lazyloader怎么实现的
- vue的响应式系统、虚拟dom
- 函数式编程
- 手写了一个算法题
二面
这轮面试时从美国打电话过来的,事后才知道是Google的前端...
- 讲讲项目里面做了什么
- vue原理,和react的区别(其实我没怎么用过react)
- JavaScript异步的处理方式,现场出了一个问题,使用promise实现
三面
- 讲项目模块规划、项目如何部署、如何优化等等
- 手写函数的防抖
- 手写一道算法题
四面
- 讲讲项目
- 手写一道算法题
洋钱罐(过)
一面
- 讲项目
- 前端持久化的方式、区别
- vue-lazyloader的原理
- 怎么配webpack
- 手写vue双向绑定
- 讲es6的一些特性,并且现场出了几个代码片段,说结果
- 手写一道算法题
- http状态码
二面
- 讲项目
- vue-router的原理
- 项目中怎么用的webpack,怎么优化
- 讲express的设计原理
- 手写一道算法题
创新奇智(过)
一面
- 讲项目
- 手动实现parseInt
二面
这一面居然遇到了前同事...写了一些笔试题,问了一些问题
三面
- 讲tcp/ip网络层、三次握手,为什么不能两次握手
- 讲vue原理
- 手写一道算法题
猿辅导(跪)
猿辅导好像总共就一面,期间一些实现方式和面试官有争议(没有冲突)
一面
- 手写vue的mixin方法
- 手写promise的all方法
- 现场出了一个移动端的小需求
搜狐-垂直媒体部门(过)
一面
- 讲项目
- 项目里面用nodejs做了啥
- 抽取了哪些vue组件
二面
- 讲项目
- 手写实现promise
腾讯-地图(跪)
腾讯两个部门面试都会先做一套笔试题,笔试题基本就是一些常见的前端问题以及算法题
一面
- 讲项目,对项目提了一些问题
- 怎么判断一个点是否在圆形内、正方形内
- 对笔试题
也是先做了一套笔试题,但是令人尴尬的是,面试官觉得我快排写错了,然而我只是在原地快排没有申请额外空间...
- 对笔试题
-
没了
-
讲项目
- 事件循环
- 回调函数的坏处
- vue里面哪儿不会用到双向绑定
快手-商业化(过)
一面
- 讲项目
- 如何抽取公共组件的
- vue的响应式原理
- 如何实现一个可设置过期时间的localStorage
- 实现一个发布订阅系统,包括on、emit、off等等
二面
- 一道智力题
- 软件工程思想、设计模式等等
-
async/await代码片段,说输出结果
OPPO成都研发中心(过)
一面
- 讲项目
- 讲vue的 响应式系统,讲了好久,从渲染watcher到虚拟dom,面试官还跟我讨论了好久
- 忘了
二面
- 讲项目
- 忘了
百词斩(跪)
首先会在线做一道算法题,挺简单的,百词斩感觉挂的稀里糊涂的...
一面
- websocket握手过程
- tcp/ip网络层,http的特点
- http强行使用udp能实现吗?
- vue原理
- webpack热更新原理,使用过的插件
- 原型、闭包、跨域
- 手写了一道算法题
如何准备
首先前端基础要过关,可以参考前端工程师手册、合格前端系列第九弹-前端面试那些事、2018前端面试押题(讲义)、Interview Book。
其次,因为我是在小厂,所以可能项目复杂度没那么高,我就尽量把手头上用到过的东西都搞明白设计原理,比如vue、express、vue-lazyloader、promise等等,平时也会造一些轮子,其实这些对业务开发都是有好处的,起码可以让你知道自己在写啥。 最后,计算机基础也是抛不开的,LeetCode刷200题左右,常见的排序、搜索、树遍历算法都要会,而且以这几个为基础的变形也要能看出来。
还有就是面试的时候的一些技巧,因为我本身表达能力还行,面试基本不紧张,说说笑笑也就过去了,之前在公司也当过一年的面试官,这方面发怵的同学可以做一些相关的准备。
JD金融
京东毕竟是大厂,问的内容相对基础,但是覆盖面广,问的也比较细致,大家如果准备大厂面试的话最好准备充分一点,不然像我一样死的很惨
1.说下你做过的你比较熟悉的项目,中间他会给你指出其中的问题,你最好都记下来
2.说一下http协议(详细)、前后端联合开发流程,get和post的区别
3.说一下什么是cookie,有没有什么新的存储手段
4.说一下响应式布局和流式布局
5.说一下vue的生命周期,vue父子组件传值
6.说一下webpack的作用
7.如何获取手机屏幕的变化(横屏还是竖屏)
8.给你一个搜索框和一个导航栏,两个都不定宽,布局实现一下
字节跳动
字节跳动要求很高,问的内容多又深,毕竟一天400不是白给你的,主要问了4个方面的知识---------css,js,vue,算法。
1.一个div里面包含着另一个div,里面的div外边距是15%,问两个div的排列情况
2.body元素里面有一个div,求实现div元素水平和垂直都居中的方法(面试官要求最优)
3.用css实现一个三角形
4.说一下闭包及其用途和不好的地方
5.说一下js中this指向有几种,并且如何解决this指向混乱问题(答案是箭头函数)
6.你vue学的怎么样,给你一个单选框,一个按钮,用vue实现点击单选框切换按钮的颜色(不要操作dom)
7.给你一个排好序的数组,如何打乱?你有几种方法,还有没有最优的解法?
8.给你一个长度为N的排好序的数组,要求给出数组元素之和为M的情况,例如长度为10的数组,数组元素为[1,2,3,4,5,6,7,8,9,10],要求给出数组元素之和为11的情况,如[1,10],[1,2,9],[1,3,4,6]
最后跟面试官交流,面试官说公司大部分都是全栈工程师,并且只要你面技术岗(包括前端,后端,大数据等),第一面都是算法。所以想进头条的童鞋们,加油吧!
闪银奇异
公司看起来很小,但是问的问题内容很多,基础上偏难(主要要求你说的详细),主要包括js(es5和es6),http协议,算法,vue,感觉是个大公司,现在找个实习好难啊!
1.说一下js面向对象和原型,我说完以后,他继续问我为什么构造函数种存储属性,原型对象中存储方法
2.了解闭包吗?说一下闭包
3.了解es6吗?说一下es6新增的字符串方法
4.说一下es6中promise及其实现原理(我说用我会,原理不懂)
5.说一下vue里面双向数据绑定的实现原理(回答一样,我说只会用,不懂原理)
6.给我在笔记本上出了几个题,让我说结果,问的是this指向问题,这种题目建议大家不要按正常套路走,一般都不会让你输出正常结果
7.说一下输入url地址到回来的过程(要求你说的超级详细)
8.http缓存
9.cookie,session,localSorage,sessionStorage
10.说一下数组是如何在内存中存储的
11.说一下链表如何定义的
12.给你一个只有左右括号字符串,判断它是不是正常的括号匹配机制,如'(()())'是正常,‘())(()’是不正常
13.说一下你简历上的一个项目
最后问面试官怎么才能通过,面试官说回答上来100%,不然就跟其他面试者比较,择优录取,所以现在的形势是在回答上来的基础上要超越其他人!所以童鞋们加油吧!
好未来
1.说一下你知道的html
2.说一下你学过的css(我说伸缩盒子,面试官就对伸缩盒子问的特别详细,包括怎么用,纵向布局怎么用,都有哪些属性和注意事项)
3.闭包
4.面向对象和继承
5.vue中的父子组件传值(详细,包括子组件如何向父组件传值,手撕代码实现)
6.vue中methods和computed的区别
7.filter,watch,directives都是干嘛用的
8.双向数据绑定(手撕代码实现)
1.有没有用过可视化工具?(我说没有)
2.说一下http协议(问的特别详细那种)
3.get和post的区别(我说get只能发送ASII字符,他就问我get如何发送非ASII字符,我说get不如post安全,他就问我为什么post更安全)
4.知道CSRF吗?怎么解决?
5.跨域
后面的忘了,反正问的都是我不会的,说自己会的就会问你其他问题(比如算法优化),然后就会被卡死,找个实习真的难啊!
阿凡题
笔试题(要求写出尽可能多的解决方案):
1.移动端适配:设计一个页面使页面宽度等于浏览器宽度,缩放比例和PC端保持一致,不允许用户自行缩放页面
2.写出你知道的所有样式优先级
3.你知道的跨域
4.如何更新缓存(js,css)
5.移动端调试页面的方法
6.Vue或React如何实现父子组件通信
7.setData函数如何使用?
8.数组去重的方法(ES5,ES6)
面试:
1.讨论数组去重的细节(比如空对象和空数组不相等,不能去除)
2.跳台阶和变态跳台阶(一共N阶台阶,每次只能跳1阶或2阶,问一共有多少种跳法)
3.问我博客中括号匹配符的正确性的解题思路
4.var arr=[1,2,3] arr1=arr arr1.push[4] 问arr是多少
5.排序算法的稳定性
6.深拷贝和浅拷贝的区别
第一部分是思维题目就是找规律那种
第二部分是技术题目
1.闭包
2.this指向
3.找出字符串中出现次数最多的字母,返回次数
4.N的阶乘
5.一个比赛的题目比较开放,没有思路
6.两个||与一个|的区别
7.跨域
8.canvas
9.实现in_array
1.vue双向绑定原理
2.webpack以及你用过的插件
3.es6新特性以及相关应用
4.http状态码
5.vue生命周期
6.vue路由
7.你的项目
8.手写基本Promise及ajax请求
1.浏览器缓存及其优缺点
2.是否对php有了解,会不会php语法
3.双向数据绑定原理
4.webpack