首页 > 字节提前批前端一面二面(已收到意向)
头像
zzhnogi
编辑于 2020-07-26 12:01
+ 关注

字节提前批前端一面二面(已收到意向)

一面

  • 自我介绍
  • 聊项目(主要讲自己用vue3.0写的开源项目,顺带连vue3和vue2的区别也讲了点)
  1. 设计一个函数实现微信红包
function hongbao(money, n) {
    const arr = []
    for (let i =0;i < n;i++) {
        let max = money / (n - i) * 2, min = 0.01
        let tmp = Number((Math.random() * max).toFixed(2));
        tmp = Math.max(min, tmp);
        money -= tmp;
        arr.push(tmp);
    }
    return arr;
}
  1. 随机排序
function randomSort(arr) {
    return arr.sort((a, b) => Math.random() > 0.5 ? -1 : 1);
}
  1. 字符串首字母大写
function upperFirst(str) {
    if (typeof str !== 'string' || str.length === 0) return
    if (str.length === 1) return str.toUpperCase();
    return str.charAt(0).toUpperCase() + str.substr(1)
}
  • typescript中type和interface的区别

  • 如何实现typescript中的readonly语法

  • 用css实现列表内除最后一个元素外其余元素加上下划线

    ... 后面记不得了

面试官是一位开源作者,最近被业务困扰几乎没有接触新的技术,同组也有从element跳槽过来的,隐约间能感觉有点丧气。可能国内大厂的开源技术只是为了KPI吧,后来问了我点为什么要做开源项目,为什么之前实习的老板支持你做这件事……说实话我毕竟还是学生确实有精力去探索,也没为什么只是感觉好玩而已。

二面

  1. 自我介绍
  2. echarts中使用svg和使用canvas的区别
  3. 如何在echarts中使用svg模式,原理是什么
  4. 项目中为什么决定用canvas模式来绘图
  5. 后端如何修改cookie
  6. 父域可以修改子域下的cookie吗
  7. vue3中的hooks式的编写方式有什么优点
  8. vue3中的生命周期部分产生了什么变化
  9. 实现promisify函数,将如fs.readFile函数promise化
function promisify(fn) {
  return function (...args) {
    return new Promise((resolve, reject) => {
      fn.apply(
        null,
        args.concat((err, data) => {
          if (err != null) {
            reject(err);
          } else {
            resolve(data);
          }
        })
      );
    });
  };
}
  1. 青蛙跳台阶,一次能跳一次或者两次
function jump(n) {
    if (n === 0) return 0;
    if (n === 1) return 1;
    let prev = 1, next = 2;
    for (let i = 2;i < n;i++) {
        let tmp = next;
        next = prev + next;
        prev = tmp
    }
    return next
}
  1. 变态青蛙跳台阶,一次能跳1,2,3...n阶(动态规划)
// f[n] = f[n - 1] + f[n - 2]+...+f[n - i]+...f[0]
// f[n - 1] = f[n -2] + f[n -3]+...+f[0]
// -> f[n] = 2 * f[n - 1]
function jump2(n) {
    const dp = Array.from(new Array(n + 1), () => 0);
    dp[0] = 1;
    dp[1] = 1;
    dp[2] = 2;
    for (let i = 3;i < n + 1;i++) {
        dp[i] = 2 * dp[i - 1];    
    }
    return dp[n];
}

已收到意向书

更多模拟面试

全部评论

(4) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐