字节跳动 AML 前端 一面
时长55mins
-
自我介绍
-
怎么接触的前端?学了多久?
-
问项目
- 为什么要做组件库?
- 问到我的组件库和AntD之类的有什么区别,我说区别可能就是我的功能更少?hhhh
- 设计一个组件的思路?
- 样式冲突问题
-
单元测试是什么?你用什么做的单测?
-
对于CSS 预编译语言的理解? (变量、混合、函数、模块化)
-
你使用的React的版本? (18.2)
- 18.2 对于17的区别? (没咋说出来,说了一些19的新功能)
-
常用的React Hook有哪些?
-
Context 和 Redux 的区别?
-
Hooks 的状态存在哪里? (fiber)
-
useLayoutEffect 和 useEffect 的区别?
-
Hooks 的使用规范,和条件语句是否能够一起使用,原因?
-
聊一聊你刚刚提到的 Fiber
-
TSX/JSX 如何编译渲染到界面?
-
Babel 是什么,Babel 转换原理是什么? (AST)
-
JS类型有哪些?
- Symbol 是什么?BigInt 是什么?
-
new object() 的流程?
-
闭包是什么?利用闭包实现一个计数器
-
EventLoop是什么?浏览器事件循环和Nodejs事件循环有什么区别?
-
有哪些模块规范?(commonJS、es6系列)
- 两者有什么区别以及为什么有这些区别?
-
有没有听过说过 sourceMap?(没有)
-
怎么做前端工程化规范? (prettier、eslint、commitlint、webpack/vite、CI/CD)
-
你的项目一般部署在哪?
-
Promise 有哪些静态方法?(all、race、allSettled)
- 说一说 Promise.allSettled 方法?
-
async / await 原理?(generator语法糖)
-
实现一个request,可以在失败的时候重试,有interval和maxCount参数
async function request(options, interval, maxCount) {
let alreadyRetryCounts = 0
let result
const fetchData = async () => {
await fetch(options)
.then(res => result = res)
.catch(() => {
alreadyRetryCounts++
if (alredayRetryCounts <= maxCount) {
setTimeout(fetchData, interval)
}
})
}
await fetchData()
return result
}
反问:
-
技术栈
-
对我的评价和建议:
- 他评价基础好,建议是可以多参加一些团队项目
-
面试结果多久通知
总结:
第一次面字节,体验很好,感觉答得也不错,期待二面
#前端##字节#