得物前端校招二面40min

1.vue2和vue3的区别
2.v-if v-show的区别
3.Dom节点的增删对浏览器性能的影响
4.一个网页在使用时正常,后面使用出现了卡顿和崩溃,如何检查,如何解决
5.九宫格布局的多种实现
6.grid布局实现九宫格布局的缺点
7.两段 JavaScript 代码输出
try {
setTimeout(() => {
try {
throw new Error('error info')
} catch(error) {
console.error(error)
}
}, 0)
} catch (error) {
console.error(error)
}
try {
setTimeout(() => {
throw new Error('error info')
}, 0)
} catch(error) {
console.error(error)
}这段代码的输出是什么,原因是什么
8.setTimeout和setInterval在浏览器如何执行
9.你平时是怎么学习前端的

手撕:数组元素去重(不能用set和indexof)
反问
全部评论

相关推荐

得物、拼多多经常考,倒计时组件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道真题和解析
点赞 评论 收藏
分享
评论
点赞
5
分享

创作者周榜

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