有赞校招笔试+面试(已通过)

本文分享了作者关于有赞技术面试的详细经历,涵盖React框架、DOM事件、网络基础知识、算法、浏览器原理、前端工具、跨域技术等关键点,以及实习生职业规划的探讨。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有赞

只记录了印象比较深刻的点

有赞用 react 比较多,面试问框架更倾向于问 react

笔试
选择题
  • currentTarget 和 target 的区别
    • 前者,指向事件绑定的元素,后者指向事件触发的元素,事件代理时,区别明显
  • 上网必须要子网掩码、网管、IP
  • 后缀表达式
  • focus、blur 事件
  • postMessage,跨域(窗口)
    • otherWindow.postMessage(message, targetOrigin, transfer)
  • localStorage 大小限制
    • 5M
  • 非稳定排序——快速排序和堆排序。两路合并算法是归并算法
  • 时钟频率,CPU
算法
  • 有一道算法,忘了,不过不难
一面

时长一个小时多一点,技术面共两面

  • 算法:平铺数组
/*
 * 平铺数组,depth为需要平铺的层级
 *
 * const array = [1, [2, [3, [4]], 5]]
 *
 * flattenDepth(array, 1)
 * // => [1, 2, [3, [4]], 5]
 *
 * flattenDepth(array, 2)
 * // => [1, 2, 3, [4], 5]
 */
 
 function flattenDepth(array, depth) {
    if (depth === 0) return array
    let arr = []
    for (let i = 0; i < array.length; i++) {
        if (Array.isArray(array[i])) {
            arr.push(...array[i])
        } else {
            arr.push(array[i])
        }
    }
    depth--
    return flattenDepth(arr, depth)
}
  • 算法:有效的括号,力扣上的

    • 用栈的思路解决,用 Map 存储一下括号类型
  • 看你算法用 let 定义数组,为什么不用 const?谈了下区别,然后说 let 只是个人习惯

  • 遍历对象的方法

  • 可枚举属性,相关方法

  • 对象的属性描述符

  • 谈谈继承

  • 谈谈对象复用有哪些方法

    • 深浅拷贝
    • Object.create()
    • Vue 的 mixin
  • 异步了解吗?

二面
  • 最近在学什么?浏览器的原理
    • 聊了 v8 垃圾回收机制
    • 浏览器刚打开有几个进程?进程和线程的区别?
    • 输入 URL 之后会发生什么?DNS 存在哪?
  • 介绍下实习项目
  • 个人博客项目的登录如何实现?token。JWT 由几部分组成?
  • react useCallback 用过吗?没用过
  • 用过什么?useState、useEffect。想实现只调用函数一次用 useEffect 怎么做?
  • hooks 解决了什么问题?有什么弊端?
  • useState 如何实现的?不了解。猜测一下底层实现?我猜的闭包,不对。换了个话题,谈谈闭包?
  • 如何检查内存泄露?控制台 Performance、Memory。谈谈使用过程?
  • JS 单线程,如何进行多个操作?
  • 谈谈事件循环
  • 系统报错有哪些类型
  • 跨域了解吗?聊了下 CORS
  • 毕业后的职业规划
hr 面

聊了三四十分钟

  • 特别杂,学习、生活、工作各个角度都聊到了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值