滴滴前端二面手撕

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 广东

相关推荐

第一次发面经欸,是今天早上面的今天下午oc,喜欢这个温柔小姐姐面试官,许愿以后面试官也是这样引导型的小姐姐😘1.拷打项目20min&nbsp;ing...2.一般用TS&nbsp;里哪些东西,了解泛型吗3.平时用哪些&nbsp;AI&nbsp;呢,在你平时的工作中大概占比是多少4.了解&nbsp;margin&nbsp;的重叠问题吗,这个问题怎么解决,原理是什么5.image&nbsp;标签是行内元素还是块级元素6.讲两个实现&nbsp;div&nbsp;水平垂直居中的方法7.如何实现一个抽奖圆盘?8.如何实现一个文本点开收起展开的那种效果,OK,你说的&nbsp;transform会触发重排吗?那&nbsp;position&nbsp;absolute&nbsp;绝对定位之后会触发吗?9.&nbsp;判断&nbsp;object&nbsp;为空的方法有哪些10.setinterval&nbsp;和&nbsp;settimeout&nbsp;区别11.&nbsp;JS&nbsp;数组方法里边有哪些改变原数组的方法12.&nbsp;session&nbsp;storage&nbsp;和&nbsp;local&nbsp;storage&nbsp;和cookie的区别,cookie什么时候过期13.&nbsp;V&nbsp;-if&nbsp;和&nbsp;V&nbsp;-show&nbsp;的区别,如果现在有一个&nbsp;tab切换,你会选择用&nbsp;V&nbsp;-if&nbsp;还是&nbsp;V&nbsp;-show&nbsp;(tab切换,就是比如说有两个分类,有两个子页面,然后它们是通过两个开关就左右切换。)14.了解&nbsp;keepalive&nbsp;吗?15.Vue&nbsp;里面&nbsp;key&nbsp;的作用16.Vue&nbsp;组件传值的方法有哪些17.手撕:数组转树建议:思路挺清楚的,需要扎实前端基础
蓝色光标开奖1人在聊
点赞 评论 收藏
分享
评论
6
20
分享

创作者周榜

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