数马2

数字马力二面 2025-07-28

  1. 自我介绍
  2. 下一家公司为什么不继续考虑杭州,而是考虑到长沙,现在薪资多少,了解长沙的薪资水平吗?
  3. 问项目是否是从0到1搭建的,参与制定git分支管理规范是怎么样的?
  4. release和master分支的作用分别是什么?
  5. release最后是合并到master分支是吗?是什么时候合并进去的?
  6. 假设release合到master分支后,负责人说我不发了,要把代码回退掉,这个时候你会怎么做?会用什么命令或者界面操作?
  7. 假设release分支上提交了100个commit,我想把其中三五个commit删除掉,revert掉,怎么操作?
  8. code review的时候遇到过哪些问题?怎么处理的?
  9. 对应code review,如果你是这个团队的负责人,对提高团队成员的cr氛围,你会有什么样的建议?
  10. 即使这么说了,但是大家的cr氛围还是不高,不愿意花时间,你会怎么解决这个问题?有没有自己的一些想法?
  11. 头条小程序和百度小程序环境适配是什么意思?
  12. 小程序不止一个线程,这个有去了解过吗?
  13. 移动端页面布局适配,介绍一下rem,flex,百分比布局的区别和使用场景?
  14. 百分比布局可以举一个例子吗?什么时候用百分比布局?
  15. padding设置百分比,比如50%,这个50%是相对于什么的?如果父元素宽度是100px,padding:50%会变成多少?
  16. css做动效,可能会涉及到哪些属性?和规则?
  17. 数组排序的方法sort,调用会改变自己吗?
  18. 实现自定义排序的方法,怎么实现?sort 里面用的什么方法?
  19. 二分和快排哪个是稳定性的排序?
  20. 对数组自定义排序算法,比如根据年龄,怎么写?sort里面的函数怎么写?
  21. 你现在接到一个上线可能有风险的活的时候,需要你去沟通,你会怎么去沟通?
  22. 同时有好几个需求过来了,让你去评估一下优先级,你会怎么去评估?领导不在,让你自己去沟通,你会怎么去沟通?关注哪些层面?向产品,项目经理说哪个高,哪个低,你会怎么说,怎么说服?
  23. 那你觉得产品的优先级高低是怎么定的?你觉得产品经理会考虑哪些方面?
  24. 如果让你去实现一个工具方法,比如把项目中的所有console都删除掉,你会怎么实现?
  25. 具体怎么删除这个console?怎么定义它是console?用正则吗?有没有其他方法?
  26. 插件的原理是什么,也是用正则吗?如果不用正则,你会怎么实现?
  27. 直接把console删掉可能存在哪些风险?可能你把console删掉了,功能出问题了,你能想一下为什么删除console会导致功能出问题吗?
  28. 给用抖音小程序的人做分类,你会怎么做人群划分?除了男人女人,你还会怎么划分?
  29. 如果说要做一个金额计算,现在服务端说希望在前端做?另一个同学说这个金额计算应该在服务端做,现在让你来拍板,你会怎么决定,怎么考虑?
  30. 你和某个同学一起做某个需求,然后都约定今天周一要提测,这个时候他说他都没有做完,假设你是小组长,你会怎么做呢?除了加班,找人帮忙,沟通上线时间还有别的办法吗?
  31. 你在自己这个技术成长方面的话,你都有自己什么样的一些方式方法,让你觉得其实这样学习对技术成长更快,有没有自己的一些心得?
  32. 你有没有遇到一些事情可能提高你的效率或者说你用某个软件或者某个工具提高了你的效率,让你觉得挺有意思的一些点,你能分享一下吗?
  33. 未来的话,除了回长沙,你还有没有别的,比如三年左右的规划?
  34. 你觉得你自己有哪些优点,或者自己这点做的还挺好的?
  35. 有碰到一些比较难的事情吗?有挑战的事情?
  36. 有什么想问我的吗?
  37. 反问后续流程?这是复试,看后续情况,可能有三面?也可能直接跟hr面试?时间安排?2-3个工作日反馈。

数字马力面试题:前端面试者回答分析与代码示例

1. 自我介绍

回答建议:简明扼要地介绍自己的学历背景、工作经验、以及在前端领域的技术栈,强调自己的优势,如参与过复杂项目的经验、对前端框架(如 React/Vue)的深入理解等。

2. 下一家公司为什么不继续考虑杭州,而是考虑到长沙,现在薪资多少,了解长沙的薪资水平吗?

回答建议:可以从生活成本、工作环境、职业发展机会等角度回答,体现出对自己未来发展方向的深思熟虑。

3. 问项目是否是从0到1搭建的,参与制定git分支管理规范是怎么样的?

回答建议:明确项目的具体情况,特别是如何参与到从0到1的搭建过程,可以提到如何选择技术栈、如何规划开发流程等。关于git分支管理规范,可以提到如git flowfeaturedevelopmaster分支的管理,提交信息规范等。

4. release和master分支的作用分别是什么?

回答建议

  • master:通常是生产环境的分支,任何提交都代表一个正式版本。
  • release:发布前的准备阶段,通常会进行bug修复和测试。

5. release最后是合并到master分支是吗?是什么时候合并进去的?

回答建议:是的,release分支一般会在确认无重大问题时合并到master,并进行tag发布。

6. 假设release合到master分支后,负责人说我不发了,要把代码回退掉,这个时候你会怎么做?会用什么命令或者界面操作?

回答建议:可以使用git revert来撤销合并,或者使用git reset进行版本回退,具体取决于回退的需求。

bash
git revert <commit_hash>  # 撤销某个提交
git reset --hard <commit_hash>  # 回退到某个版本

7. 假设release分支上提交了100个commit,我想把其中三五个commit删除掉,revert掉,怎么操作?

回答建议:可以使用git rebase -i进行交互式rebase,选择要删除或修改的commit。删除commit时将其对应行删除即可。

bash
git rebase -i HEAD~100  # 进入交互式rebase,选择要操作的commit

8. code review的时候遇到过哪些问题?怎么处理的?

回答建议:常见问题包括不规范的代码、命名不清晰、逻辑不合理等,解决方式是与同事积极沟通,统一规范,保持团队的代码风格一致。

9. 对应code review,如果你是这个团队的负责人,对提高团队成员的cr氛围,你会有什么样的建议?

回答建议:定期进行代码规范培训,建立代码评审的流程和标准,激励团队成员互相帮助,提升代码质量。

10. 即使这么说了,但是大家的cr氛围还是不高,不愿意花时间,你会怎么解决这个问题?

回答建议:通过设定CR的时间窗口,并要求每个成员都有具体的评审任务,创建一个友好的氛围并进行反馈,及时奖励良好的行为,推动团队的整体成长。

11. 头条小程序和百度小程序环境适配是什么意思?

回答建议:由于不同的小程序平台有不同的API和运行环境,适配就是确保同一套代码能够在多个平台上顺利运行。可以通过平台特有的API进行条件编译或者使用跨平台的框架(如Taro、UniApp)进行统一适配。

12. 小程序不止一个线程,这个有去了解过吗?

回答建议:了解过,小程序支持主线程和worker线程,worker线程可以在后台进行复杂计算而不阻塞UI线程,提升性能。

13. 移动端页面布局适配,介绍一下rem, flex, 百分比布局的区别和使用场景?

回答建议

  • rem:基于根元素的字体大小进行布局,适用于响应式设计。
  • flex:一种弹性布局方式,适合复杂的布局结构。
  • 百分比布局:基于父元素的尺寸进行布局,常用于自适应宽度的场景。

14. 百分比布局可以举一个例子吗?什么时候用百分比布局?

回答建议:例如,设置一个div宽度为父元素宽度的50%:

css
div {
    width: 50%;
}

通常用于父容器尺寸可变时,子元素需要根据父元素的宽度进行自适应布局。

15. padding设置百分比,比如50%,这个50%是相对于什么的?如果父元素宽度是100px,padding:50%会变成多少?

回答建议padding百分比是相对于父元素的宽度计算的。所以如果父元素宽度是100px,padding: 50%就是50px。

16. css做动效,可能会涉及到哪些属性?和规则?

回答建议:涉及的属性包括transitiontransformanimation,通过改变这些属性的值,可以实现平移、缩放、旋转等动效。

17. 数组排序的方法sort,调用会改变自己吗?

回答建议sort()方法会改变原数组,因此需要注意使用时的副作用。

18. 实现自定义排序的方法,怎么实现?sort 里面用的什么方法?

回答建议:可以传入一个比较函数,根据需要排序的规则进行实现。例如,按年龄排序:

javascript
const arr = [{ age: 30 }, { age: 25 }, { age: 35 }];
arr.sort((a, b) => a.age - b.age);

19. 二分和快排哪个是稳定性的排序?

回答建议快排是非稳定排序,而二分查找不是排序算法,它是搜索算法。

20. 对数组自定义排序算法,比如根据年龄,怎么写?sort里面的函数怎么写?

回答建议

javascript
const arr = [{ name: 'A', age: 30 }, { name: 'B', age: 25 }, { name: 'C', age: 35 }];
arr.sort((a, b) => a.age - b.age);  // 按照年龄升序排序

21. 你现在接到一个上线可能有风险的活的时候,需要你去沟通,你会怎么去沟通?

回答建议:首先明确风险来源,评估可能的影响范围,准备好技术细节并向相关人员沟通。可以提出补救措施,如逐步上线、回滚方案等。

22. 同时有好几个需求过来了,让你去评估一下优先级,你会怎么去评估?

回答建议:根据业务价值、紧急程度、资源限制来评估优先级。与产品经理、项目经理沟通,确保决策合理。

23. 那你觉得产品的优先级高低是怎么定的?你觉得产品经理会考虑哪些方面?

回答建议:产品经理会考虑市场需求、用户反馈、业务目标等多方面因素来确定优先级。

24. 如果让你去实现一个工具方法,比如把项目中的所有console都删除掉,你会怎么实现?

回答建议:使用正则匹配所有console语句,并进行删除或替换。

javascript
const regex = /console\.log\((.*?)\);/g;
const str = 'console.log("Hello World");';
const result = str.replace(regex, '');

25. 具体怎么删除这个console?怎么定义它是console?用正则吗?有没有其他方法?

回答建议:可以通过正则匹配console相关语句进行替换,或者通过babel插件等工具进行自动化处理。

26. 插件的原理是什么,也是用正则吗?如果不用正则,你会怎么实现?

回答建议:插件通常通过抽象出代码的结构来实现对目标的处理,可以通过AST(抽象语法树)来进行处理。比如使用Babel进行语法树的遍历和转换。

27. 直接把console删掉可能存在哪些风险?可能你把console删掉了,功能出问题了,你能想一下为什么删除console会导致功能出问题吗?

回答建议console.log常用于调试过程中,可能有些代码逻辑依赖于控制台的输出或者调试标志。删除后可能会漏掉调试信息,导致开发人员无法发现问题。

28. 给用抖音小程序的人做分类,你会怎么做人群划分?

回答建议

可以根据用户年龄、性别、地域、兴趣等多个维度进行划分,精准定位不同的用户群体。

29. 如果说要做一个金额计算,现在服务端说希望在前端做?另一个同学说这个金额计算应该在服务端做,现在让你来拍板,你会怎么决定,怎么考虑?

回答建议:根据计算的复杂度、实时性、数据的安全性等因素进行判断。对于简单的金额计算可以在前端做,如果涉及到敏感数据或复杂逻辑,应交由服务端处理。

30. 你和某个同学一起做某个需求,然后都约定今天周一要提测,这个时候他说他都没有做完,假设你是小组长,你会怎么做呢?除了加班,找人帮忙,沟通上线时间还有别的办法吗?

回答建议:首先了解进度问题,可能是技术难度大、需求变动等因素。可以调整优先级,或者调整需求范围,确保能按时提测。

31. 你在自己这个技术成长方面的话,你都有自己什么样的一些方式方法,让你觉得其实这样学习对技术成长更快,有没有自己的一些心得?

回答建议:通过定期复盘,学习前沿技术,参与开源项目,进行系统化学习等方式,持续提高技术能力。

32. 你有没有遇到一些事情可能提高你的效率或者说你用某个软件或者某个工具提高了你的效率,让你觉得挺有意思的一些点,你能分享一下吗?

回答建议:可以分享一些自己常用的工具,如VSCodePostmanWebpack等,如何通过这些工具提高开发效率。

33. 未来的话,除了回长沙,你还有没有别的,比如三年左右的规划?

回答建议:可以从个人职业发展、技术深度、团队管理等方面谈自己的目标。

34. 你觉得你自己有哪些优点,或者自己这点做的还挺好的?

回答建议:可以结合自身经验,谈论自己的优点,比如解决问题的能力、团队合作、技术深度等。

35. 有碰到一些比较难的事情吗?有挑战的事情?

回答建议:分享一些自己在项目中的挑战和解决方案,体现自己的解决问题的能力和技术积累。

36. 有什么想问我的吗?

回答建议:可以询问团队的技术栈、公司文化、未来项目的挑战等问题。

37. 反问后续流程?

回答建议:确认下一步面试流程和时间安排,展现出对该岗位的兴趣和期待。

SSE原理
数马1
欢迎来到前端练习生ZM的小站