工做吧,我以为就像谈恋爱,不必定是找高富帅或者白富美,互相确认过眼神是对的人就能够~而面试的自信和对工资的要求,源于你过硬的基础和平时的思考、积累以及总结~css
8月底离职,实际上是裸辞,固然大概是在原东家我所在的产品项目组的人集体跑路了,因此我也离开了本身所在一年半的东家,毕竟留下来的都是要填大坑的。因而大概花了两天的时间简单梳理了一下前端知识和回顾了一下,本身作的产品和遇到的一些问题。而后一个星期面试了大概10家企业的样子,天天上午一场下午一场,包含饿了么、小米、大搜车、喜马拉雅、爱回收等这些大中厂的前端面试(都是上海地区的),后来猎头有推荐一些外企ebay和其余一些企业,主要是我的以为面试了一周累了,因此后来拿到了4家公司电话告知面试经过的消息,而后选了一家本身比较喜欢的公司,就中止面试了,固然面试有被虐的体无完肤,也有比较顺利的,故给你们作个小总结分享,但愿对你们有所助力面试和对前端的摸索。前端
这里实际上是这也是面试一般套路,面试官一来90%先来个自我介绍吧,只有10%的面试官一来,直接说谈谈你的项目吧,一般我会这样自我介绍vue
xx理工大学软件工程毕业,上一家公司主要是作xxx的,我在xxx产品项目组里负责xxx,xxx等前端开发,
主要的技术栈是xxx/xxx,而后本身平时比较喜欢玩前端,会把本身的小想法实现写写小DEMO开源在gitHub里,
也会定时作作总结在本身的博客网站和技术社区里写写技术文章作分享复制代码
其实这里也没什么,我大概就表达几点:计算机科班出身、本身熟悉的业务状况,技术栈和会去研究技术、作分享。固然这里有不少面试技巧能够用,我这边的话,按照本身的实际状况描述~node
到这里其实面试官基本上不会抓到不少你自我介绍的面试的点,由于他的眼睛每每盯着你的简历,扫描你的简历描述,因此我比较推荐简历上把你的专业技能写一下、工做经历、项目经历、我的项目、其余能写都写上去,建议尽可能把事情说清楚,多用数据表达,结果导向(固然这块没有很好的标准,只是我的的观点)。若是有不错的开源项目也写上在简历上去,这边我就贴上我本身的一些描述吧(若是有须要看我这个简历所有,能够移步我github)react
专业技能这块,必定不要给本身挖坑,不太清楚的或者忘得差很少东西就不要写了(我是有给本身挖坑过,写了些本身拿到的证书,好比中级软件工程师,Linux网络管理员认证,而后有一家面试官使劲问我Linux操做,最后一句我告辞,结束尴尬的气氛)。我的建议没有十足的对一个技术知识点把握,千万不要写精通,面试官看到这个词语,每每会考考你究竟是不是精通,仍是在吹牛逼。因此写写熟练、熟悉、理解、了解....等比较谦虚而又不失大气的词语来描绘你的技术栈。webpack
接下来我的项目能够写一下,若是本身所在的公司不是很知名,和在公司作的项目不是很亮的话,只能靠本身的开源来拯救本身了(ps:其实个人所谓gitHub里的东西也没什么,都是很简单的小demo,可是掘金友的老铁们给了很大的支持,目前star累计有300+,能够直接访问个人github看看)ios
对于工做机会,主要是一个是技术社区、一个是求职平台,朋友内推也能够css3
对于这块,笔者是没在不少线上求职平台,放本身的简历,主要是裸辞,因此简历仍是要挂一下求职平台的,主要是挂了boss直聘、猎聘这两个平台,其余就拉钩....其实均可以。说实话,boss直聘、猎聘这两个平台效率很高,你一挂上去基本上天天能够收到20-30个消息,猎聘上不少猎头服务也是不错的,笔者全程没本身投简历,基本上都是猎头推荐的岗位,安排好的面试时间,boss直聘里基本上看到大中厂的HR或者前端人员发了信息给我,我才回信息,聊的不错给他们简历,大概是这样样子。若是看到本身喜欢的公司,你能够本身主动去联系这些公司的HR,聊聊~git
对于面试,分要笔试和不须要笔试的,分重基础的和重业务的考察。广泛的来说,大厂看重基础扎不扎实,小厂相对考察对技能的熟练程度多一点。梳理的话,掘金小册有一个《Web 前端面试指南与高频考题解析》推荐一看,固然我也买过了,内容还不错,慕课网也有几个视频能够,可是对每一个基础知识点要加一些本身想法和思考会更好es6
笔试的话,基本上考的都是css的一些运用,js的一些基础,一些简单的算法题,固然也有计算机基础的,后端基础,和浏览器相关的都有。对于项目,他们会拿你的具体作的项目,由浅入深,剖析你对技术和业务的理解。下面这边是我总结的我遇到一些笔试和问到的一些问题:
一、CSS选择权重(你按照正常描述能够,建议加一些在框架上的好比vue里的样式相关的知识点,好比Vue中的scoped原理及穿透方法是否知道?接下来确定就是PostCSS转译实现了解多少咯)
二、手写一些半圆,园、三角形、梯形...(注意是手写出来相似这种,三角形原理[伪类也能够实现三角形]必懂)
三、sass、less用了那些特性,这两个有什么区别,怎么本身封装样式库(能够参考element/bootstrap,固然也要知道,webpack打包样式这块的知识点咯,好比css-loader style-loader的内容和区别)
四、css3有什么特性(虽然我面试的时候直接怼面试官了,直接说我接触前端来就是css3,其实就是那些动画、透明度,渐变等这些了)
五、盒模型(除了原理和对比,这里你能够把Bootstrap摊开了一说就是全局重置样式里有box-sizing: border-box;)、清除浮动(几种清除浮动的方式,大厂的网站是这么作的摊开来一说,基本上经过伪类)、BFC(原理和建立),z-index层(好比知不知道层优化能够提高渲染性能,提示:好比GPU加速)
六、布局:三栏、两栏,九宫格,垂直居中,水平居中、自适应响应式(解决方案)。那些浮动、绝对定位、flex、表格布局、网格布局这些应该都熟练于心,各自的优缺点,固然你也要了解一下双飞燕、圣杯布局原理和实现
七、移动端像素知识与Viewport知识,好比怎么在h5网页怎么显示真实的1px边框和12px字体大小
....这里列的只是我碰见的面试和笔试题,其余还有不少考点...
一、基础JS-Api,判断是否是整数,对数组的操做:增删改查(查重),重组,排序,数组打乱、这些都要求能手写代码,固然这些都有好几种方式实现
二、建立对象、New运算符、事件流(冒泡和捕获)、原生事件绑定、BOM操做(好比对Ie9一下浏览器的判断和一些操做)
三、原型原型链、闭包、类与继承(在class以前的实现继承,构造函数继承、原型链继承、组合方式继承,各自优缺点)、同步异步
六、es6/7/8的新特性,基础指令、箭头函数、字符串模板、promise(原理,运用的场景)、面向对象、数据格式(set/map),async/await(原理,有个cto问我这个函数用babel打包后长什么样子)....
七、模块化、函数式编程,高阶函数的使用,柯里化函数,递归...
1、加载过程、渲染过程(最好也配合着框架聊)
二、性能优化(加载、渲染),能够配合框架聊,好比说vue,异步组件路由的懒加载实现原理,GPU加速这块要了解
三、HTTP(各类状态码、什么无状态链接、管线化、强缓存,问的深的话会问Nginx代理以及面向将来的HTTP的思考等)、存储cookie、localstorge、sessionstorge,各自的区别,固然对这块你要深刻一点,好比cookie的工做流程,里面的参数,为何呢说不安全,爱回收面试官问个人时候,当时有尴尬的场面
四、跨域:jsonp原理,cors、iframe,postMessage....,固然也要知道前端框架下的跨域,好比vue\node下的跨域怎么实现和处理
五、前端渲染和服务端渲染(单页应用SEO, 好比vue2.3 发布后提出了服务端渲染,Nuxt.js
是否了解)
六、前端监控(数据、性能、异常监控,埋点和上报)、请求相关的(好比怎么在vue下二次封装axios请求,你会有什么思考)
一、基本的指令、v-model原理(手写一个双向绑定)watch和computed的区别和运用的场景、事件处理/事件修饰符...
二、响应式原理、生命周期,渲染优先级
三、组件,异步组件、父子组件通信,兄弟组件通信,父组件调用子组件的方法,父组件给子组件添加方法,父组件改子组件的样式,父组件怎么给子组件传一个带$的参数,子组件向父组件声明本身存在....能够看看element源码,里面不少值得学习地方
三、vue-router,hash和history实现原理,路由懒加载原理,让你实现一个路由你会有哪些思考
四、vuex,各个api,运用场景,让你实现一个状态管理你会有哪些思考
五、设计一个能够无限嵌套的树组件,并提供使用文档
六、开发中有遇到什么问题,怎么解决的
...
vue 的话主要考原理比较多,要求看源码,固然网上有不少总结的很好的资源,正如尤大大推荐同样
推荐《Vue技术内幕》、《Vue.js 技术揭秘》,固然掘金小册《剖析 Vue.js 内部运行机制》也写的很好,值得快速了解,但最好是本身去看源码
这些其实都有问,由于我简历上写的熟悉vue,因此问的基本上都是vue的问题,其余的都大同小异,好比node两个比较火的框架(koa/express),webpack内部和配置前端开发环境,时间关系就不一一列了。
一、若是让你设计一个前端框架你会有什么思考(一般是CTO会问这个问题)
二、你有什么问题要问个人?一般我会说想了解一下这个招聘岗位的项目业务和技术栈状况和团队状况,我我的在团队上是一个什么角色、简单对我此次面试作个评价和建议
三、你平时工做以外会作什么?个人回答基本上比较固定,天天坚持跑步半个小时,周末篮球(有面试官说他也喜欢打球),除了这些就是逛技术社区,看看前端的技术,实现本身的小想法,在本身的网站和技术社区写写文章分享....
四、为何在上一家公司离职?因为上家公司业务调整,所在项目组人员长期闲置作维护工做,没有作研发工做,我的以为没有体现我的价值,因此离职
五、你以前的同事怎么评价你?...
面试其实印象也有比较深回忆
1、饿了么面试,过程很不错,面试官是饿了么的一个前端主管,以前参加过他的技术分享沙龙会,整个面试过程很轻松,最后面,他说来我来测一下你的编程能力,一个在线编译器,没有代码提示的,我是一个代码提示依赖的人....结果是是凉凉的,面试完后,他和我聊了许多,我也把来以前准备的测出的饿了么官网和app前端上的几个bug和一些优化的地方,以及他们开源的做品进行本身见解和他交流,他有推荐看看《重构》《代码整洁之道》《代码大全》,有留微信,说能够半年后再过来面试交流,他也会把我提的相关问题和优化和相关让部门处理~
2、爱回收,这个面试是比较糟糕的,准备不充分,很知识点知道,可是没有了解很深,两个面试官轮流面试我,致使一个面试官给个人评价是,知识广度有,深度没有。其中另一个面试官聊到最后,有问我是哪里人,而后发现是一个老乡,老乡对老乡的情怀,最后他还和我梳理了前端的知识,站在一个比较高的角度和我聊前端,也互留了微信,结果不用说了凉凉~
3、前端知识零零碎碎,其实吧,大多数看看知识点就ok了,但必定是要有本身思考去回答问题,若是只是按照别人总结的可能你消化不了,若是你回答的问题和百度到的同样的,面试官大多数会以为不太好,因此仍是要本身理解的程度上去回答问题。代码相关的必定要是本身手写,并且尽可能不要依赖代码提示(饿了么凉了也是有这一个缘由)
4、前端知识、框架都不少,我的以为其实不须要都熟练,深刻理解一两个技术栈就ok了,前提基础必定是要扎实的,就像爱回收面试官对个人评价:有知识广度没有知识深度,虽然这个评价有点狠,可是确实也鞭笞着我,要回归基础,回归JS和数据结构,再读前端框架源码,和玩转node~
5、遇到面试中不清楚或者不知道的知识点,你不要慌,先来一个尴尬而不失礼貌的微笑,而后说在这块知识其实我很早以前是有看到过的,如今因为面试有点慌,短期内不能总结一个很好的答案,但我是有思考的~说一些相关的东西,若是实在是不清楚,就说不清楚。每一个人都有知识盲点,面试官也不是说要问道你什么都会,固然若是你整个面试过程,问的问题你都知道,你心里里以为都能回答的很好,但我也不建议你所有都回答的很好出来,留一两题表现的不是那么完美的回答便可,道理很简单,一我的永远不要表现太强势,这样可能有些面试官会以为你有点“狂”,不太好相处~懂我意思吧
6、前端岗位是个敏感的动物,能够平时逛逛大厂的网站和看看他们的产品,把有趣的地方,学习和模仿着写对应的代码,固然技术社区和牛人博客常看看,了解各个常识,好比最近vue/npm/node版本(稳定)更新到多少了,更新了那些东西了解一下。面试的自信和对工资的要求,源于你过硬的基础和平时的思考、积累以及总结~
7、以上面试知识点梳理和答案,js笔试部分我已经整理出一个文档,其余的知识点也有部分整理出来了(可是不必定是正确和最佳答案),包括我本身的简历,若是感兴趣的均可以移步在我github仓库
Front-end-notes 上,也能够 在线文档网页 当字典查看,持续更新...
写的仓促,描述有误之处,谢谢你们指正,也期待和你们在评论区或者在github提交issues交流~最后祝愿各位同窗在求职面试中能够收割心仪的offer~
ps:若是有前端同窗想换坑位,简历到我我的邮箱:codercao@foxmail.com,我这边评估ok的话,能够内推,固然其余公司能够帮你推荐,坐标限上海~
了解掘金秋招求职征文活动更多信息👉秋招求职时,写文就有好礼相送 | 掘金技术征文