前面一面问的技术方面的问题比较多,二面开始主要关注项目了,好像美团都是这样的,先是自我介绍然后开始聊项目
- 接触前端的契机,开始学习前端的时机
- 前端的学习路径
- 简单讲了一下前端的三大件,再到Vue和React
- DOM BOM和BOM的API
- 聊了一下history api/Vue-Router的history模式和#模式
- 浏览器渲染网页的过程,以及浏览器的组成
- 八股复读
- 在这个组成下,如果我不想用js去处理交互逻辑,而是想用java/C++,我该如何才能让他们在浏览器里跑起来?
- 应该提供对应的运行时,就像JS能在浏览器里运行是因为有V8引擎,想要别的语言能跑起来还需要提供对应的运行时,同时还需要提供原先提供给js的用于跟DOM/BOM交互的接口
- 可以通过WebAssembly来运行
- 你提到的这些接口是包含在V8引擎里的吗?
- 不在,接口是由浏览器对外开放的
- 在浏览器里这些渲染都是由浏览器的渲染引擎渲染的,如果在原生有没有别的方式?
- 可以使用原生开发/React Native
- 聊到了我的项目打开了之后,控制台会有一些报错,问我这个报错是什么原因
- 实际使用的时候没问题,这个报错就没管
- 就此展开对于体验一致性的讨论,用户的体验跟你的体验一定一致吗?
- 我聊了一些对于兼容性、目标版本的理解,以及如何通过多种方式去确保能去对各种设备做兼容,我的核心议题就是兼不兼容是产品说了算;对于面试官提到的成本问题,我认为就看你要不要为了获得更好的兼容性付出这样的开发和测试成本,无非就是成本和收益的权衡
- 最终面试官就是想说,我们无法保证用户的体验跟我们开发时的体验是一致的
- 能不能做到兼容是一回事,能不能感知到不兼容又是另一回事,你能知道在用户侧上有什么报错吗?
- 可以的,集成一个Sentry,啥报错都能在控制台看到
- 对于你目前的这个网站,你能不能想到有什么优化空间?
- CDN 优化静态资源加载
- 把部署的服务器放在国内
- SSR
- 在代码层面有没有什么优化空间?
- 写list的时候提供key,尽可能少的触发重排之类的
- 你的这个页面,js的实际大小有十几兆,我觉得这个页面没有复杂到需要这么大的js才能跑起来
- 因为是个人项目,实际开发的时候可能比较粗放,也没有成熟的项目管理经验,所以可能没有实际关注最终打包的js文件大小,如果需要优化的话可以拉一个表看一下哪些js占据的空间大,然后做一些针对性的优化
- 后面就是聊了一些个人规划/为什么没有暑期实习/个人爱好之类的
相比于一面,问的问题比较少,可能是因为一面已经问了足够多的八股了,二面就不怎么问这些了,主要考察项目上的一些理解了。
#美团求职进展汇总#
#前端##秋招#