快手前端一面+二面(已OC)
一面(2021-11-23)
- 自我介绍
- 介绍项目
- 登录校验
- token
- 页面刷新token还存在吗
- vuex会丢失,本地localstorage里面还存了一次,state先判断本地存储有没有,有的话获取,没有的话则是还没登陆。重定向到登陆页面。
- 封装了哪些请求
- get,post,delete请求,使用promise对它进行封装,token加到请求头里面
- 打印题(闭包)
for(var i = 0; i < 3; i++) { document.body.addEventListener('click', function() { console.log(i); } ) }
- 打印3 个 3
- 如果想0 1 2,怎么做
- let
- 立即执行函数(闭包)
- 有没有其他方法?
执行结果
var count = 10; function a() { return count + 10; } function b() { var count = 20; return a(); } console.log(b());
结果:20
执行结果
Function.prototype.a = () => alert(1); Object.prototype.b = () => alert(2); function A() {}; var a = new A(); a.a(); a.b();
- 1 2
- a 是函数还是对象?(对象)
- a 对象找不到函数原型上的方法
- undefined 2
- 执行结果
function Foo(){ this.a = 1 return{ a:4, b:5 } } Foo.prototype.a = 6 Foo.prototype.b = 7 Foo.prototype.c = 8 var o = new Foo() console.log(o.a) console.log(o.b) console.log(o.c)
结果:6 5 undefined
- 解释一下构造函数的执行过程?(new的过程)
- 先创建一个新的对象,对象的原型指向构造函数的原型
- 让函数的this指向这个对象,执行构造函数的代码(为新对象添加属性)
- 判断函数的返回值,值类型->创建的对象。引用类型->返回引用类型的对象。
- 题:变驼峰命名
- 正则思路,匹配到-和后面的一位
- 实现防抖
- 改进:第一次点击和最后第一次点击生效(防抖+节流的实现)
- 二分查找(一维有序数组)
- 再看一个题目,事件总线EventEmitter,手写发布订阅
- 函数的执行作用域有考虑吗
- 通常改变this执行,改变函数的执行环境?
- call,apply,bind
- 跨域解决手段(jsonp和cors)
- 什么请求头
- v-show 和 v-if区别
- v-show 只编译一次,v-if 性能消耗大
- 里面用到的 nextTick 的实现了解吗
- 内部是怎么实现的,而不是应用场景
- created 里面调用 nextTick
- 内部是怎么实现的,而不是应用场景
二面(2021-12-02)
大概是一面结束之后的一个周后打电话通知我的一面过了,才约的二面
自我介绍
实验室是什么
前端自己比较感兴趣的
前端工程化
颜色的展示方式
- rgb,#号,变量(red,yellow)
写一个随机生成颜色的函数
function rgb(){//rgb颜色随机 var r = Math.floor(Math.random()*256); var g = Math.floor(Math.random()*256); var b = Math.floor(Math.random()*256); var rgb = '('+r+','+g+','+b+')'; return rgb; } function color16(){//十六进制颜色随机 var r = Math.floor(Math.random()*256); var g = Math.floor(Math.random()*256); var b = Math.floor(Math.random()*256); var color = '#'+r.toString(16)+g.toString(16)+b.toString(16); return color; }
- 手写:字符串补0 (写完之后,面试官告诉我前面的16进制的颜色的代码存在一点缺陷就是16进制的小于10的数字是一位,就不符合颜色得了,所以需要补一个0)
- 手写vue全选反选框组件
就是一个全选,下面三个单选(苹果,香蕉,梨的单选框),要求就是点击全选,下面全选中
三个单选框全选中的时候,全选框也要被选中,只要三个中的一个单选框没有被选中,全选框就不被选中
二面完了之后,就很快有hr来加我了,整体来说,面试体验很不错
#前端##实习##面经#