百度前端工程师伪社招面经
1、讲一下你认为的什么是优美的代码,有哪些实践,项目紧急时,舍弃哪一个(健壮,复用性,优美)
eslint这里我嘴贱说舍弃复用性,面试官说我没经历过大量项目需求的压力,不能舍弃复用性
2、设计模式
讲了下发布订阅模式,他没细问
3、闭包,原理,常用场景
当时有点紧张,乱说一通,,,
4、手撕代码,实现call,
function b(){}function.prototype.call1 = function (that, ...pars){
this.bind(that)(...pars)
}
我总觉得有问题
4.2 手写 son 继承 father
var son = function (name) {
this.name = name
}
son.prototype = new father()
son.prototype.constractor = father
5、手撕代码,前序遍历二叉树
前面强行写的,代码可读性不好,而且有点冗余,解释了好久后面他要求用递归
6、手撕代码,手写快排
他说我应该没问题(???你很了解我吗?)还好以前写过
6.1、两边固定宽度,中间自适应
先用flex, 他说不能用flex后面用position然后他笑了,直接让我用float我说我不会,尴尬
7、讲一下https
这个问题我研究了好久还跟同事分享过,一被问到就大脑空白,太悲催了最后他问一句我答一句,整个过程拼拼凑凑
8、express中间件
简单过了一点中间件
9、会写小程序吗?
我:写过》讲一下xxx我:不知道
10、讲一下函数作用域和块级作用域
这个讲了下var和let的区别,var声明提前,初始化提前,let声明提前,初始化未提前
11、js事件流,
这里我讲的浏览器的微任务,宏任务,node我主动说的不知道,淦