前端面试题整理(适用一年经验)

本人2017年毕业,从事前端工作1年,去过新华三,海康、大华面试,结合今天和之前的面试经历,整理了一些面试题。因为本人vue的项目经验不是很足,被问到关于vue的问题也不是很多。

ps:在h3c被问到的问题自己整理的笔记里面都有,但是很多答案只有个印象,不太记得,略微有点桑心。
海康的面试不太愉快,就问了在工作中有没有处理过跨域问题?自学vue的时候有没有碰到什么问题?我说我刚开始准备学es6,问我箭头函数?讲一下做过的项目?后台用的是什么语言?就说要找一个资深的你不太适合就没了。感觉去了一个假的海康。
去了大华面试,做了笔试题,笔试题js的内容比较多,然后是包含字母和数字的数组去重,三栏布局等。我去面试的部门比较重视js方面的知识,问了些项目的问题。

建议:尽量把面试官引导到你会的方面,或者在你会的方面适当在不给自己挖坑的情况下多说点儿,就是展现一下自己,不要说的过多。一些小公司可能会更多的针对你做所的项目去问,例如项目所用的框架、项目中遇到的问题和解决方法,或者会问为什么用这个框架不用xxx,我认为这个就是考你框架的优缺点。

HTML

1.H5语义化:页面内容可以写出头部、尾部、导航、菜单、主题内容有图文说明
2.H5新增的一些特性(例如衍生出的问题:H5新增的存储方式和cookie做比较)

CSS

1.清浮动的方法
2.“固比固”布局,我自己整理的有5种,可能会写手写代码(我里有整理)
3.css盒模型:ie模型和标准模型区别?如何设置这两种模型?
4.边距重叠解决方案(BFC)
5.垂直居中和左右居中的方法,说的越多越好(我的大概归纳了一下)
6.linear-gradient,box-shadom,文本超过一行省略,动画animation(动画)、transition(过渡)、transform(变形)、translate(移动)等笔试会手写代码
7.CSS实现宽度自适应100%,宽高16:9的比例的矩形。

DOM事件流

1.基本概念:事件级别
2.DOM事件模型:冒泡和捕获(了解意思和运用)
3.DOM事件流
4.event.stopPropagation() 阻止冒泡和event.preventDefault() 阻止默认事件等需要记
5.自定义事件

数据转换

1.JavaScript的typeof返回哪些数据类型?即基本数据类型和复杂数据类型。会问具体有哪些类型?区别是什么?
2.显式类型转换
3.隐式类型转换
4.四则运算/判断语句(问的不是很多)
5.[]==[] //false true+true=2 等的判断
6.typeof
7.深拷贝和浅拷贝是什么及两者的区别

原型与原型链

1.创建对象有几种方法?
2.原型、构造函数、实例、原型链知道四者之间的关系,知道什么是原型和原型链
3.衍生题:使用原型链来实现继承

面向对象类

1.类与实例
2.如何实现继承(借助构造函数实现继承,借助原型链实现继承)

通信类

1.什么是同源策略及限制
2.前后端如何通信
3.ajax
4.xmlhttprequest对象的工作流程
5.跨域通信的几种方式
6.sessionstorage,localstorage,cookie的区别

渲染机制

1.浏览器是怎么渲染的?
2.渲染机制:重排reflow和重绘repaint(目前被问到的概率比较小)

JS运行机制

1.js单线程(笔试会给出代码写答案)->什么是任务队列?什么是event loop?
2.异步任务->setTimeout和setInterval/ DOM事件/ES6中的Promise

页面性能类

1.提升页面性能的方式有哪些?也就是前端性能优化,其实可以分为移动端和桌面浏览器说
2.异步加载的方式与区别
3.浏览器缓存

错误监控类(如何让检测js错误?怎么保证产品质量?)

1.前端错误分类
2.错误的捕获方式
3.衍生:js的跨域运行错误可以捕获吗?

闭包

1.闭包的含义?
2.使用闭包的注意点?或者闭包的缺点
3.关于闭包的代码题(例如一段代码要按预期结果输出,怎么改?)

HTTP协议类

1.http状态码?
2.持久链连接
3.管线化
4.http和https。问的深的话还会问三次握手什么的

安全类

1.CSRF基本概念,攻击原理和防御措施
2.XSS基本概念,攻击原理和防御措施

VUE

1.mvvm框架
2.vue的数据双向绑定原理,最好可以看下源码,object.defineproperty的用法要记住
3.使用的设计模式:观察者模式
4.生命周期是什么?需要记得每个节点触发的时机?
5.组件之间的交互
6.vuex了解一下
7.axios了解一下
8.vue-router是什么?有哪几种导航钩子?

算法

1.排序,至少知道两种(冒泡,选择,快速,希尔等)
2.数组去重,至少知道两种

ES6

1.箭头函数中的this指向谁?
2.如何实现一个promise,promise的原理,以及它的两个参数是什么?
3.promise中第二个参数的reject中执行的方法和promise.catch()都是失败执行的,分别这么写有什么区别,什么情况下会两个都同时用到?
4.map和set有没有用过,如何实现一个数组去重,map数据结构有什么优点?

其他

1.js的回调
2.可能会问到git
3.响应式布局(我被问到bootstrap的栅格化布局是用什么,回去翻了一下笔记是媒体查询,哭)
4.兼容性问题
5.正则验证
6.可能会问到webpack
7.可能会问到sass和less

暂时先写到这里,后期持续更新。。。
文末打个广告。之前学习的时候有买过慕课网的视频,要的话留言课程名称。

你可能感兴趣的:(前端面试题整理(适用一年经验))