滴滴前端二面手撕

1.实现react的useEvent

function useEvent(fn) {
// 实现
}

function Demo () {
const [s] = useState(1)
// 返回值onEvent是函数,且是稳定的值
// log输出中,s永远输出的是最新的s的值
const onEvent = useEvent((a, b) => {
console.log('cb', a, b, s)
})
return (<XX onEvent={onEvent}>{s}</XX>)
}

2.类名压缩

// 压缩CSS类名,你给一个函数,接受传入的元素的class的值。然后压缩返回。需要做到多次调用不重复,全局唯一。
// 希望预期的是,对于所有的class的名字,都可以按照最短输出。例如 class-a -> a class-others -> b
// 当足够多之后是如 aa ab 这样的值

function optim (classNames) {
}

console.log(optim('class-a')) // 'a'
console.log(optim('xx')) // 'b'
console.log(optim('class-a')) // 'a'
console.log(optim('class-a  xx class-ee')) // 'a b c'
全部评论
今天面的吗家人
1 回复 分享
发布于 03-21 17:38 陕西
请问一下,手撕是面试官口述,还是在腾讯会议上发布的
点赞 回复 分享
发布于 03-24 12:18 陕西
好难的感觉
点赞 回复 分享
发布于 03-24 11:12 广东

相关推荐

现在如果我遇到一些撰写文档的工作或者写代码这里包括写项目和写算法题,基本都会用到AI。算下来一天少说也得十几次次,AI&nbsp;早就不是偶尔用用的工具,而是嵌进日常学习和求职准备里的&nbsp;“刚需搭档”&nbsp;了。写代码的时候,遇到复杂的算法题比如动态规划、贪心策略,先丢给&nbsp;AI&nbsp;让它拆解思路,告诉我状态转移方程怎么设计,再对照着自己写代码,比死磕半天找不到方向高效多了;写项目的时候,用&nbsp;AI&nbsp;生成基础的&nbsp;CRUD&nbsp;代码框架,再根据业务逻辑调整细节,节省下来的时间能去研究更核心的架构设计。写文档的时候更离不开它&nbsp;——&nbsp;改简历时,让&nbsp;AI&nbsp;帮忙润色项目描述,把&nbsp;“写了接口”&nbsp;改成&nbsp;“设计并实现高并发用户接口,支撑日均&nbsp;10&nbsp;万请求,响应时间优化&nbsp;30%”;写实习周报、项目总结时,丢给&nbsp;AI&nbsp;关键词,它能快速梳理出条理清晰的框架,我再补充具体细节,不用再对着空白文档发呆。甚至刷面试题的时候,都会用&nbsp;AI&nbsp;当&nbsp;“面试官”——&nbsp;让它针对&nbsp;Java&nbsp;后端、AI&nbsp;Agent&nbsp;这些方向提问,模拟面试场景,还能帮我指出回答里的漏洞,比如讲&nbsp;Redis&nbsp;分布式锁时没提到死锁的解决办法,讲&nbsp;Spring&nbsp;Boot&nbsp;自动配置时漏了&nbsp;@Conditional&nbsp;注解的作用。有时候也会担心,会不会依赖&nbsp;AI&nbsp;久了,自己的独立思考能力会退化?但转念一想,现在的&nbsp;AI&nbsp;更像一个&nbsp;“高效的辅助手”,它能帮我节省重复劳动的时间,让我有精力去钻研更底层的原理。毕竟,AI&nbsp;能生成代码,但判断代码是否符合业务场景、是否高效稳定,还是得靠自己。说到底,一天用多少次已经不重要了,重要的是学会和&nbsp;AI&nbsp;协作——&nbsp;让它做&nbsp;“体力活”,自己做&nbsp;“脑力活”,这才是当下最划算的学习和工作方式。
你现在一天AI几次?
点赞 评论 收藏
分享
评论
4
15
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务