快手效率工程日常实习面经(已经OC)
一面
- 问看过前端哪些书?哪些章节比较熟悉
回到了红宝书和阮一峰的的es6,于是面试官问了红宝书哪些章节比较熟悉,于是回答了原型链部分
- 问原型链来解决什么?用es5来实现继承
this
指向问题(具体记不住了,大概问题是这样)var a=1; let foo={ a:6, printA:function(){ console.log(this.a); } } let myFun=foo.printA; myFun();
问输出(答输出1),如果要输出6,只修改第8行代码,如何实现.答使用bind
,将第8行代码改为let myFun=foo.printA.bind(foo);
问bind
是如何实现改变this
指向,回答call
,apply
,手写了call
和bind
的实现.- 因为在手写
bind
的时候使用了闭包,问什么是闭包?使用闭包来完修改和读取函数内部a
的值function Foo{ let a=8; }
问闭包有什么用处,回答了可以用来实现柯里化,面试官说还有commonjs
也使用了闭包 - 问了如何实现居中布局,和一个盒子的长宽比保持在2:1
- 问了什么是盒子模型(大概)
- 问了css优先级
- 问了知道如何实现promise吗(回答说不知道,但是会用),口述一下如何实现并发控制
- 用递归实现a,b之间的所有整数和
- 算法题:岛屿数量问题
- 问了项目,如果token失效,你是如何做的.看见简历里有了解
co
模块,问了co
模块做了什么