记录一下拼多多社招前端一面(5.19)

面试分三部分,总计 50 分钟左右。

第一部分

首先自我介绍,外加讲解自己做过的项目,以及自己在这些项目中充当一些什么角色。

第二部分(记不太清顺序,大概有这些内容)

1. 什么是事件循环
2. vue 的双向绑定原理
3. keepAlive 为什么不能缓存 Iframe 中的 dom 结构
4. 性能优化有哪些做法

(被问的有点懵,实在想不起其他问题,后面想起再加上)

第三部分 编程

1. 写一个函数,参数为任意个数组数据,求它们的交集,
例:func([1, 2, 3, 5], [2, 4, 6], [2, 3, 5])  => [2]
       func([1, 2, 3, 5])   => [1, 2, 3, 5]

2. 用 react / vue 写一个页面,页面上显示一个计数及一个按钮,点击按钮计数 +1,在 5 秒内没有再次点击时,计数清零。

最后就是清一色的向面试官提问环节。

自我感觉面试的稀碎,面试官特别在意页面的性能优化方面,然后一直举各种场景让我去说怎么做优化。但性能优化我个人没有过多的做过,以至于支支吾吾个半天,说不出个所以然来。一声叹息

两道编程题没什么难度,都做出来了。 面试官让讲讲解题的思路,同时对我的代码提了一点建议。中间还穿插问了一个 
clearTimeout / clearInterval 能否相互清除对方的定时器的问题。这个我答的不会,但结果是会的...后面要去好好补补性能优化方面的知识了

#面经##拼多多一面#
全部评论
最近找工作中,前端怎么这么难找😂
点赞 回复 分享
发布于 2023-05-30 14:19 上海
几年经验能过简历关
点赞 回复 分享
发布于 2023-05-30 05:15 广东
面试官提问的问题很全面,需要多加准备和学习,有后续了吗
点赞 回复 分享
发布于 2023-05-22 12:30 辽宁
应该多看看面经,跟我的面试基本一样
点赞 回复 分享
发布于 2023-05-22 00:48 上海

相关推荐

得物、拼多多经常考,倒计时组件1.倒计时组件2.如何实现精确计时(setInterval 1s先就update以前知道写但没考虑到为什么,时间戳同步)// Countdown.jsximport React, { useEffect, useState, useRef } from 'react';/*** props:*  - endAt: number (timestamp ms) 或 Date*  - onFinish?: () => void*  - tickMs?: number (minimal tick granularity, default 1000)*/export default function Countdown({ endAt, onFinish, tickMs = 1000 }) {const endTs = typeof endAt === 'number' ? endAt : endAt.getTime();const [remaining, setRemaining] = useState(Math.max(0, endTs - Date.now()));const mounted = useRef(true);useEffect(() => {mounted.current = true;// initial syncfunction update() {const now = Date.now();const rem = Math.max(0, endTs - now);if (!mounted.current) return;setRemaining(rem);if (rem === 0) {onFinish?.();return;}// Align next update to wall-clock second boundary (or tickMs)const delay = Math.min(tickMs,1000 - (now % 1000) // align to next second for nicer UX);// If <1s left, use requestAnimationFrame for smoothnessif (rem <= 1000) {requestAnimationFrame(update);} else {setTimeout(update, delay);}}update();return () => {mounted.current = false;};}, [endTs, onFinish, tickMs]);const sec = Math.ceil(remaining / 1000);const mm = Math.floor(sec / 60);const ss = sec % 60;return (<div>{mm}:{String(ss).padStart(2, '0')}</div>);}
查看2道真题和解析
点赞 评论 收藏
分享
评论
15
41
分享

创作者周榜

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