Skip to content

水滴 校招 笔试 ​

2023-03-10 21:30

给一个 url 解析 url 中的参数组成一个数组 放入一个二维数组中

ts
function queryParse(url) {
  const arr = url
    .split('?')[1]
    .split('&')
    .map(item => {
      return item.split('=')
    })
  return arr
}

console.log(queryParse('http://www.baidu.com?a=1&b=2&c=3'))

请实现一个函数比较两棵树之间的差异 并根据第三个参数的值返回对应更新类型的节点 返回的数据按照升序排序函数有三个参数 1。 新的二叉树 2。 老的二叉树 3。 获取的更新类型取值为 ADD、 MODIFY、 REMOVE 分别代表新增的节点,更新的节点和删除的节点 输入 {1,2,3,#,#,4,5,6},{1,2,3,#,#,4},"ADD" 输出 [5, 6]

ts
function diff(newTree, oldTree, type) {
  const result = []
  const newTreeArr = newTree.split(',')
  const oldTreeArr = oldTree.split(',')
  const diffArr = newTreeArr.filter(item => !oldTreeArr.includes(item))
  if (type === 'ADD') {
    result.push(...diffArr)
  }
  return result
}

diff({1,2,3,#,#,4,5,6},{1,2,3,#,#,4},"ADD")

一面 ​

2023-03-29 14:45

  • react 生命周期
  • react hooks
  • fiber架构
  • 组件库 基建
  • 从输入一个url到页面渲染的过程
    • 这个过程可以优化的点
    • DNS优化 预加载 prefetch

反问 ​

  • 主要vue2 部分新项目vue3
  • 上下班 1085

二面前端 ​

2023-03-30 15:00

  • 从输入一个url到页面渲染的过程

  • http和https的区别

  • 三次握手四次挥手

  • 常见的网络攻击手段

    • XSS 如何防范?
    • SQL 注入
    • CSRF
    • DDos
  • 参与团队?

    • 与后端争人?
  • 个人优缺点

  • 个人规划

  • 算法 斐波那契数列 空间复杂度时间复杂度? 能否递归实现

ts
// 输入一个数 返回对应的斐波那契数列中对应下标的值
// 1,1,2,3,5,8,13,21,34.....
function foo(index) {
  const list = [1, 1]
  for (let i = 2; i <= index; i++) {
    list.push(list.at(-1) + list.at(-2))
  }
  return list.at(-1)
}

console.log(foo(3))

三面 ​

2023-04-03 16:00

  • 组件库
  • hash table
  • 算法
  • 堆栈
  • 快排
    • 复杂度
  • react-starport

Released under the MIT License.