快手前端一面+二面(已OC)

一面(2021-11-23)

  1. 自我介绍
  2. 介绍项目
  3. 登录校验
    1. token
    2. 页面刷新token还存在吗
      1. vuex会丢失,本地localstorage里面还存了一次,state先判断本地存储有没有,有的话获取,没有的话则是还没登陆。重定向到登陆页面。
    3. 封装了哪些请求
      1. get,post,delete请求,使用promise对它进行封装,token加到请求头里面
  4. 打印题(闭包)
for(var i = 0; i < 3; i++) {
    document.body.addEventListener('click',
        function() {
            console.log(i);
        }
    )
}
  1. 打印3 个 3
  2. 如果想0 1 2,怎么做
    1. let
    2. 立即执行函数(闭包)
  3. 有没有其他方法?
  1. 执行结果

    var count = 10;
    function a() {
     return count + 10;
    }
    function b() {
     var count = 20;
     return a();
    }
    console.log(b());

    结果:20

  2. 执行结果

Function.prototype.a = () => alert(1);
Object.prototype.b = () => alert(2);
function A() {};
var a = new A();
a.a();
a.b();
  1. 1 2
  2. a 是函数还是对象?(对象)
    1. a 对象找不到函数原型上的方法
    2. undefined 2
  1. 执行结果
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

  1. 解释一下构造函数的执行过程?(new的过程)
    1. 先创建一个新的对象,对象的原型指向构造函数的原型
    2. 让函数的this指向这个对象,执行构造函数的代码(为新对象添加属性)
    3. 判断函数的返回值,值类型->创建的对象。引用类型->返回引用类型的对象。
  2. 题:变驼峰命名
    1. 正则思路,匹配到-和后面的一位
  3. 实现防抖
  4. 改进:第一次点击和最后第一次点击生效(防抖+节流的实现)
  5. 二分查找(一维有序数组)
  6. 再看一个题目,事件总线EventEmitter,手写发布订阅
    1. 函数的执行作用域有考虑吗
  7. 通常改变this执行,改变函数的执行环境?
    1. call,apply,bind
  8. 跨域解决手段(jsonp和cors)
  9. 什么请求头
  10. v-show 和 v-if区别
    1. v-show 只编译一次,v-if 性能消耗大
  11. 里面用到的 nextTick 的实现了解吗
    1. 内部是怎么实现的,而不是应用场景
      1. created 里面调用 nextTick

二面(2021-12-02)

大概是一面结束之后的一个周后打电话通知我的一面过了,才约的二面

  1. 自我介绍

  2. 实验室是什么

  3. 前端自己比较感兴趣的

  4. 前端工程化

  5. 颜色的展示方式

    1. rgb,#号,变量(red,yellow)
  6. 写一个随机生成颜色的函数

           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;
           }
  1. 手写:字符串补0 (写完之后,面试官告诉我前面的16进制的颜色的代码存在一点缺陷就是16进制的小于10的数字是一位,就不符合颜色得了,所以需要补一个0)
  2. 手写vue全选反选框组件

    就是一个全选,下面三个单选(苹果,香蕉,梨的单选框),要求就是点击全选,下面全选中
    三个单选框全选中的时候,全选框也要被选中,只要三个中的一个单选框没有被选中,全选框就不被选中

二面完了之后,就很快有hr来加我了,整体来说,面试体验很不错

#前端##实习##面经#
全部评论
二面第7题 答案会不会写错了 应该是 4 5 undefined呀
3 回复
分享
发布于 2022-01-24 21:29
给正式offer了嘛?
点赞 回复
分享
发布于 2021-12-10 10:44
联想
校招火热招聘中
官网直投
请问快手给开多少呀
点赞 回复
分享
发布于 2021-12-14 19:57
请问在哪里投递的面试?
点赞 回复
分享
发布于 2021-12-14 21:59
一面第5题为什么是20呢
点赞 回复
分享
发布于 2021-12-14 22:30
11题咋写呀
点赞 回复
分享
发布于 2021-12-14 23:38

相关推荐

10 50 评论
分享
牛客网
牛客企业服务