滴滴前端实习一面45min

先是自我介绍,面试官技术很强,稀里糊涂面的是核心部门网约车,被拷打很痛苦
·项目介绍和深挖
·安全问题和解决方法
·基本数据类型和存储位置
·存在栈和堆上的优缺点
·css垂直居中
·flex
·两栏布局
·判断数据类型
·手写instanceof
·手写instanceof和系统instanceof不同,给了个例子两个返回值不一样,为什么
·深拷贝和浅拷贝
·手写深拷贝递归
·给了个例子运行栈溢出,咋解决
例子我没有专门记,基本就上面那些问题啦,这个也是没过的
全部评论
用weakmap记录,防止深拷贝的循环引用导致栈溢出
1 回复 分享
发布于 01-05 14:54 山东
接好运
点赞 回复 分享
发布于 02-27 09:44 上海
佬是25的吗?
点赞 回复 分享
发布于 2024-12-20 18:20 四川
和我两年前面的题挺多重合了竟然
点赞 回复 分享
发布于 2024-12-13 20:11 北京

相关推荐

好伤心,面试官结束时候评价是整体还行,等视频挂了5分钟内收到感谢信这前后反差,我只好安慰面试官尊重自己,但是谁来安慰我呀面试上来开始问八股1,说说 url到浏览器页面显示整个过程2,http 缓存3,流式输出,你知道哪些可以实现的方式?AI生成到前端你觉得采用那种方式?3,css 设置的元素要不断旋转,怎么写(不到一分钟面试官问我是否会,不会可以换一题,那我还行想到用什么,那换一题吧)keyfram 里面设transform;animation 里面应用设定的spin;代码如下:(linear 匀速转,infinite 无限循环)@keyframes spin {    from {        transform: rotate(0deg);    }    to {        transform: rotate(360deg);    }}.spinner {    animation: spin 2s linear infinite; /*持续2秒 转一圈*/}4,输出解释题:function app() {    const [count, setCount] = useState(0)    useEffect(() => {        const interval = setInterval(() => {            console.log('useEffect')            setCount(count + 1)        }, 1000)    }, [])     return (        <div>            <h1>{count}</h1>        </div>     )}会输出打印什么?h1位置 count 显示什么那当然每隔1s 打印出0,页面显示也是05,好的,你分析他原来想要实现什么效果,然后现在这段代码怎么改能实现预期效果,你有几种方式?【用useRef 、手写update函数,设定count 动态依赖项,使用setTimeout 递归(但是容易爆栈)】我当时有点懵,当然是没考虑到function app() {    const [count, setCount] = useState(0)    const countRef = useRef(count);    useEffect(() => {        setInterval(() => {            console.log('count', count);            // setCount(count + 1)            setCount(countRef.current + 1)        }, 1000)    },[])    useEffect(() => {       const update = () => {        console.log('update')        setCount(count + 1)         setTimeout(update, 1000) // 递归调用, 会导致栈溢出       }        update(); // 初始调用    })    useEffect(() => {        const interval = setInterval(() => {            console.log('useEffect')            setCount(count + 1)        }, 1000)    }, [count]) // 动态依赖,但是频繁定时器创建和销毁    return (        <div>            <h1>{count}</h1>        </div>     )}7,输出顺序是什么?function app() {        promise.resolve().then(() => {        console.log('promise')    })    useEffect(() => {        console.log('useEffect')    }, [count])    useLayoutEffect(() => {        console.log('useLayoutEffect')    }, [count])    return (        <div>            <h1>{count}</h1>        </div>     )}输出:useLayoutEffect promiseuseEffectuseLayoutEffect(dom更新后,相当浏览器刷新渲染了,立即同步执行)、promise (微任务,在同步执行完清空微任务队列)useEffect(异步执行,事件循环后执行)期间问了useLayoutEffect 和 useEffect 区别8,看下面输出什么?(弱弱心想:不能出点其他的吗?)function Foo() {    getName = function () {        alert(1);    }    return this;}Foo.getName = function () {    alert(2);}Foo.prototype.getName = function () {    alert(3);}var getName = function () {    alert(4);}function getName() { alert(5); }Foo.getName(); // 2getName(); // 4Foo().getName(); // 1getName(); // 1new Foo.getName(); // 2new Foo().getName(); // 3new new Foo().getName(); // 3看这是金典js输出,但是解释起来费劲呀,解释不断问我:变量提升到哪,函数提升到哪,可以修改一下代码看看提升到的位置,new 关键字分析一下,作为普通函数调用还是.... (问下牛友,这种题目去那找能复习到呀)9,写个sum函数实现下面输出:console.log(sum(1,2,3).sumOf()); // 6console.log(sum(1,4)(2).sumOf()); // 7console.log(sum(1)(2)(3)(4).sumOf()); // 10function sum(...args) {    let total = args.reduce((acc,cur) => acc + cur,0);    function innerSum(...newArgs) {        total += newArgs.reduce((acc,cur) => acc + cur,0);        return innerSum;    }    innerSum.sumOf = () => total;    return innerSum;}console.log(sum(1,2,3).sumOf()); // 6console.log(sum(1,4)(2).sumOf()); // 7console.log(sum(1)(2)(3)(4).sumOf()); // 10
点赞 评论 收藏
分享
时长40分钟,没有开摄像头1.自我介绍2.项目是实习的项目还是学校的项目?3.项目负责哪个方面?4.实习做什么的?5.three.js相关,有没有了解3d的一个渲染模式,比如如何修改场景,修改景深6.前端学习路线7.react的useEffect,useState是同步的还是异步的,use.memo了解不?经常用的有哪些?8.express框架的压缩模型9.为什么用Mongodb,不用mysql?10.js事件循环11.判断执行顺序(这里是口述代码,后来我问了我可以记一下么,才打开聊天框发过来代码)12.promise的内部实现13.js的作用域14.在一个方法里面,console.log(a)的过程是啥?15.判断了两个输出16.在什么情况会用到状态管理?17.比如现在有一些用户数据,存到store,怎么去读取?或者说,从0到1去设计一个项目,对于一些用户信息,组织信息,搭建这个以及做一些权限设置,会怎么设计?18.路由拦截怎么拦截?19.组件间数据通信怎么做的?20.在vue想实现一个v-module的指令,怎么做?比如说用一些vue2的组件库,element等挂在input上面,比如说挂一个a变量,我们就可以v-module=a,a这个数据是实时响应的,输入啥就展示啥,自己去实现input的时候,模拟input组件的时候,比如说自己挂一个customsa,然后v-module d,然后,然后d再实时监听到他的值,这个怎么实现?后面又说想知道那个指令。说了props和emit,又被问具体怎么实现。21.懒加载的逻辑22.说了一个场景,简单描述就是,倒着滑浏览器的时候或者在底部的时候并且强刷之后,图片怎么懒加载的,渲染逻辑是啥?23.职业规划是什么?以后准备做什么?24.专业不相干,为啥做前端相关的软件方面?反问:业务,平常做啥
查看24道真题和解析
点赞 评论 收藏
分享
1. 常见的行内元素2. 网页中head部分的meta标签有什么作用3. 子元素如何对父元素实现水平垂直居中4. 有用过grid吗?(了解过,但是没在项目中使用过)5. css中rem和em的区别6. 列举position的值7. 伪类和伪元素有什么区别8. canvas和svg有什么区别(回答了不熟悉canvas,svg使用一般是直接在网站中选取svg图标插入)9. 了解过svg的图标是如何实现的吗10. 列举数组有哪些方法11. 针对回答的方法,问了push、splice、shift、slice、fliter哪些是改变原数组,哪些不改变12. 讲一下防抖和节流的使用场景13. 字符串反转 说一下思路14. 数组随机打乱 说一下思路15. vue3中的hooks方法用过吗? (我只说了生命周期,好像不是16. computed和watch的区别17. 列表渲染时,key有什么作用18. 图片懒加载具体是什么实现的(使用了vueuse中的useIntersectionObserver)19. 知道vueuse的作者吗(这个真不知道)20. 之前自己有写过一个hooks吗21. 有哪些常见的持久化方案22. cookies、sessionstorage、localstorage常见的使用场景23. 了解或者使用过ts吗(只看了一点ts,面试官还是比较看重这里的,表示ts一定要会24. package.json文件是干什么用的?25. package-lock.json文件和package.json有什么区别?26. 列举发起网络请求常见的http的header27. 说一下http的状态码28. 有哪些途径学习前端的知识29. 有提到过在掘金看帖子,还问我有没有固定关注的人或者订阅的专栏30. 未来对于前端学习有什么规划吗31. 怎么看别人都说ai会取代前端?说说看法反问:针对面试表现能不能提一些未来学习的建议?一定要会ts,前端工程化方面虽然使用不多,但是也要掌握滴滴流程很快,十分钟内就知道结果了。
点赞 评论 收藏
分享
评论
3
21
分享

创作者周榜

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