前端面试总结(红色题为必考,其他为常考)
一、关于css面试题
1、css垂直居中的集中方式?
答案:html结构:
1 2 3 | <div class="box"> <div>垂直居中</div> </div> |
方法1:display:flex
1 2 3 4 5 | .box{ display: flex; justify-content:center; align-items:Center; } |
方法2:绝对定位和负边距
.box{position:relative;}
.box div{
position: absolute;
width:100px;
height: 50px;
top:50%;
left:50%;
margin-left:-50px;
margin-top:-25px;
text-align: center;
}
方法3:translate
1 2 3 4 5 6 7 8 | .box childdiv{ position: absolute; top:50%; left:50%; width:100%; transform:translate(-50%,-50%); text-align: center; } |
方法4:table-cell
1 2 3 4 5 | .box{ display: table-cell; vertical-align: middle; text-align: center; } |
方法5:偏移量0+margin:auto
父元素设置相对或绝对定位;要居中的子元素设置绝对定位,所有偏移量为0,外边距为auto:
.wrap{
positon:relative;
}
.center{
positon:absolute;
top:0;bottom:0;left:0;right:0;
margin:auto;
}
2、对于移动端的布局方式?(采用display:flex 以及rem,em、px区别 )
3、css3的兼容问题(一般简单的答一些常用的兼容问题就好,不常用的就说碰到了百度解决的)
二、关于html5、css3面试题
1、html5的新属性有哪些?(列举一些新增常用的语义化标签,以及input新增属性,以及媒体标签,canvas,本地存储,websocket以及实现原理 这些就好)
2、Localstorage、sessionstorage、cookie三者各个的区别,及特点,优点,本地存储使用场景具体怎么用?
3、css3新增属性以及动画?
三、关于js/jq面试题
1、http请求过程有哪些?
2、原声ajax请求过程?
3、post请求以及get请求的优缺点?
4、对array数组处理以及string处理的一些常用方法?
5、如何遍历一个数组里的每个数据,(主要考遍历的一些方法 for循环,forEach(),map()方法)
6、怎样进行深拷贝及浅拷贝?他们的区别?
(推荐地址:https://www.cnblogs.com/chenhuichao/p/9121353.html)
7、关于this指向问题,在不同的场景下this的指向?
8、关于闭包,如何创建闭包,闭包的用处及缺点?
(推荐地址:https://www.cnblogs.com/chenhuichao/p/8568486.html)
9、怎样理解原型链?
10、数组去重的方法?
(推荐地址:https://www.cnblogs.com/chenhuichao/p/9121404.html)
11、为什么会有跨域、跨域的几种解决方式?
答:(从同源策略 方面进行回答、 跨域方式 jsonp,设置请求头,nginx代理 vul-cli的proxyTable反向代理解决跨域)
四、关于vue面试题
1、Vue的生命周期有哪些,分别有哪些特性?
2、父子组件,以及非父子关系组件的通信是怎么实现的?(父传子通过props,子传父通过$emit,促发父组件自定义函数,vuex状态管理进行通信,$eventBus进行通信)
3、vuex包含哪些内容?实现原理?使用场景及优缺点?
4、vue路由的设置,及路由守卫的实现?
5、vue2及以前版本的实现原理,vue3.0的实现原理?
答:js通过Object.defineProperty修改属性的get, set方法,从而达到数据改变的目的。3.0将使用 ES2015 Proxy的 observer 实现 作为其观察者机制,它可以提供覆盖语言 (JavaScript——译注) 全范围的响应式能力,这消除了以前存在的警告,使速度加倍,并节省了一半的内存开销。
五、关于es6面试题
1、es6常用的一些命令,方法,api 。
(例如 let、const、import、export、箭头函数、promise对象、async函数,class,解构赋值 推荐学习地址:http://es6.ruanyifeng.com/)
六、所用工具的问题
1、代码管理使用的工具,svn,git(常用命令说几个)。
2、nginx使用场景,命令。
3、webpack有用过没,使用场景,以及原理。
七、主观题
1、说下你以前项目中遇到的问题,你是怎么解决的?
2、项目中你有哪些优化项目的方案?
3、平时学习方法有哪些,你是怎么进行学习的,对新知识是否有洞察力,以及团队相处。
4、第二轮面试一般都是问你的兴趣爱好,学习能力,性格特点,团队协作能力,提前想好一些话题,跟面试官交心,交朋友的心态交流 事半功倍