前端面试总结
原文地址:Something about Interview
今天来整理一下关于面试的一些内容。
首先有些东西想说一下,我觉得。。。
很多人都说前端工程师门槛低,谁都能学,谁都能入行,一开始我觉得,嗯嗯。。(怪我太天真)
作为一个已经转行互联网一年多的普通一本大三学生,我发现,有些计算机专业知识是必不可少的,例如:数据结构,算法,计算机组成原理,计算机网络这些东西,这些东西都是属于内功部分,而且在笔试的的时候深有体会,特别是不会数据结构和算法很吃亏。如果想走的更远,这些东西如果不学,始终会有一天成为自己发展的绊脚石。所以趁着有时间,我觉得有必要投入足够的时间,去补计算机专业知识。
再者,要成为一个Competent FE,JavaScript(目前来说是ES6),CSS(CSS3),html(h5),这些,都是很重要的。如果想找到工作,也是必须要有牢固的基础。
那么我就简单列一下面试遇到的各种问题。
html CSS
-js版本实现快排,优化。
overflow问题
em和rem和px
bfc原理
弹性盒子问题, flex布局
绝对定位和相对定位
让一个不知道尺寸的元素居中。
JavaScript
深度克隆。
数组去重所有方法,如果里面有function怎么办?
对象的遍历。(hasOwnproperty,for。。。in区别)
对象的方法。(能说少说多少)
作用域相关知识(ES5中的理解,和Es6中的理解,最好都说一下)
箭头函数
懒加载
声明提升问题(ES5和ES6中的各种区别)
事件委托机制的原理(这里可以展开讲,1000万个li,逐一绑定使用事件委托)
Object.assign方法
break对forEach的影响。会不会终止forEach循环?
js中的对象属于什么数据结构?
原生实现call apply new
ES6 中的set
ES6中的继承(class)
设计模式,策略模式,观察者模式
判断数组和对象的方法(典型的有三种,toString,instanceof,constructor)
this的指向问题
class和prototype的区别,prototype和proto 的区别
网络
手动封装一个ajax
手写一个jsonp
jsonp和ajax的区别
跨域相关问题(方法,区别)
输入一个URL,发生了什么事情?
手写解析URL参数
网络协议,各种网络协议分别属于什么层?
http和https长连接
请求报文heade常用字段
状态码403和500 分别代表什么
get和post的区别
框架和库其他
zepto和jQuery事件委托的区别?
webpack的有什么用
vue和vuex的区别
onload和onready的区别
vue是怎样实现双向绑定的?
react的生命周期
计算机相关知识
服务端变成怎样提高效率
操作系统的功能
寄存器存的是什么的。
js中的对象属于什么数据结构?
链表和数组的区别
排序有哪些(你会的),快排的原理
数据库的常用方法
操作系统 线程有什么状态
js的线程机制
求二叉树的深度
那么相关的内容就讲到这,希望大家都能拿到好offer。
PS:以上内容是我总结师兄师姐的,本人还在沉淀中。。。修炼中。。。蓄力中。。。
我的博客:leunggabou.com 欢迎批评
#前端工程师#