热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

阿里前端工程师面试题+解题思路

公司|阿里地点|杭州职位|前端开发工程师一面(提前批)①介绍下自己的项目②AngularJS和React、Vue有什么区别?结合

公司 | 阿里

地点 | 杭州

职位 | 前端开发工程师

一面(提前批)

①介绍下自己的项目

②AngularJS和React、Vue有什么区别?结合开发经历描述。

这个纯看理解和个人发挥了,面试官估计仔细看了我的简历,三个框架都用过所以这么问。

当时扯了很久关于框架的见解,在这种方面,千万不要背MVC或MVVM之类的概念。

③项目中遇到什么问题,如何解决的?

④Node.js用过么,讲一讲。

用的不多,就把Node的事件循环讲了下,nextTick和setImmediate跳出来讲了讲。

⑤平时用哪些渠道进行学习?

二面突击面试,不约时间,11点来电就直接开始了。

这种没有准备的情况下一定要冷静,可以先让面试官稍等片刻自己准备下设备,同时调整下状态。

①近两年在前端领域有什么成果和贡献?

很有魄力的问题,突击面试外加上来就丢这个问题很有压迫感。讲了自己release的项目,实验室的项目,社区博客(开始学前端就在写CSDN博客,近期迁到掘金)分享,flutter等等。

②请讲讲三大框架为何会产生?

很宽广同时又很精确的主观题,从前端技术史讲起,各大公司的立足点和开发诉求。

③你对前端框架的发展方向有什么自己的见解?

很广泛,从动态化,兼容性入手,有时间想谈谈新编码下的JIT和AOT。

④玩过IOT一类的嵌入式开发吗?

玩过树莓派,以前在学校搞过小车竞赛。

⑤解决过哪个技术问题最令你大呼过瘾?

技术上从0到1最痛快,比如在一张白纸的情况下完成Google OAuth2.0认证,调通接口。

⑥你在技术方面最佩服或最感谢的身边人。

⑦你有什么想向我了解的?

问了很多问题,关于淘系现在的结构组成,阿里在Flutter、BFF、Serverless方面的生态建设,还问了下当天淘宝IOS出现的S1级事故。学到了很多。

三面面试官是P9的前端团队大leader,什么都会,什么都比你深,只能稳住别慌,尽力发挥。

①讲一下你价值最大的一个项目。

讲了大三实习的项目AngularJS+.Net Framework。

②我看见你还用Flutter,讲一讲Flutter的原理吧。

底层有一个用于跨端的嵌入层,中层用C++实现自绘引擎,封装成dart ui库,上层用dart开发,对象化组件化。

③Flutter和ReactNative比,性能孰优孰劣?

RN首屏性能相对弱,组件重绘代价大,JSBridge涉及进程切换,这个固有代价导致RN的渲染性能弱于Flutter,所以RN才有了架构重建计划,将JSBridge替换为JSI。

④微信小程序的结构和原理又是什么样的?

回答得不好,印象中的小程序也是和RN类似的派系,但是底层实现ui的方式我犯迷糊了。

⑤现在的Flutter肯定是直接不能用于大项目开发的,你觉得它的瓶颈在何处?

讲讲Flutter在状态管理方面的不足,提到了大厂在Flutter方面的定制。

⑥你有什么要问我的?

赶紧问下之前小程序原理的问题,面试官说上层是用html,js那套web跑在浏览器内核(如V8,JSCore等),再往下层是用webview,外加一些native code实现对webview做得不太好的组件的补充。

还问了一直关注的severless问题,面试官高屋建瓴,分两点进行教学:

基础设施方面

云原生的支持必须达到足够高的稳定性,满足扩容收缩等硬性要求才能将关键基础链路演化为severless,目前还存在一定差距,不过一些非关键业务链路已经完成迁移。

人的方面

应用工程师得拥有该方面的维护技术和解决问题的能力。虽然还有很多细节不甚理解,但认真听完还是收获满满。

四面(交叉面,钉钉)

①你收获最多的项目是什么?

大三外企实习项目,全栈开发,让我对架构和服务化甚至是敏捷开发的项目把控和工程实践有了不少的体验和理解。

②项目中使用websocket开发,在和后端对接之前如何进行开发?

这个问题被问住了,因为项目比较小前端用完mock数据,甚至连mock服务器都没有就直接和后端对接,后端推送数据也是在前端直接查看,就老老实实和面试官交流了一阵。

③关于网站性能优化问题,SPA过大导致首屏时间太长怎么解决?

性能优化问题我一直没有特意去“背诵”,毕竟自己的项目都没到前端性能的瓶颈。谈了谈懒加载、打包策略。

④如果老板和你说网站首屏加载时间太长,但不知道什么原因,你如何一步步定位并解决问题?

先要定位问题,打开控制台看timeline,如果那些阶段占用过长时间就会有长条的瀑布图显示。结果面试官追问如果timeline看起来很正常怎么办?我只能回答可能出现页面报错,js文件出错没能正确进行一些dom操作,导致元素没有正常显示。

⑤如果某个js文件必须在header中被加载,而它又操作了body中才有的dom元素,怎么办?

可以在该js文件之前加一个适配的js文件,手动append一个可供该文件选择的dom元素,然后再页面onload之后删除适配该元素。

HR

①目前的offer有哪些,想如何选择?

②你做前端的目标是什么?

③在学校的学习成绩怎么样?

④对工作地点有要求吗?

这些问题不能乱讲,想稳拿offer就老实回答,以上。

以上就是今天的面试经验分享希望对大家有帮助~

兵法有云,知己知彼,方能百战不殆。跳槽季又来了,如何在千万求职大军中碾压众人?

黑马程序员视频号出了一个专题【程序员求职跳槽指北】!

里面都是黑马老学长和学姐的实战技巧,他们的薪资涨幅高达100%,这样的实战经验你想要吗?

 


推荐阅读
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 如何撰写初级和高级前端开发者的专业简历
    如何撰写初级和高级前端开发者的专业简历 ... [详细]
  • CSS3 @font-face 字体应用技术解析与实践
    在Web前端开发中,HTML教程和CSS3的结合使得网页设计更加多样化。长期以来,Web设计师受限于“web-safe”字体的选择。然而,CSS3中的`@font-face`规则允许从服务器端加载自定义字体,极大地丰富了网页的视觉效果。通过这一技术,设计师可以自由选择和使用各种字体,提升用户体验和页面美观度。本文将深入解析`@font-face`的实现原理,并提供实际应用案例,帮助开发者更好地掌握这一强大工具。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • Framework7:构建跨平台移动应用的高效框架
    Framework7 是一个开源免费的框架,适用于开发混合移动应用(原生与HTML混合)或iOS&Android风格的Web应用。此外,它还可以作为原型开发工具,帮助开发者快速创建应用原型。 ... [详细]
  • 深入解析 Lifecycle 的实现原理
    本文将详细介绍 Android Jetpack 中 Lifecycle 组件的实现原理,帮助开发者更好地理解和使用 Lifecycle,避免常见的内存泄漏问题。 ... [详细]
  • MySQL的查询执行流程涉及多个关键组件,包括连接器、查询缓存、分析器和优化器。在服务层,连接器负责建立与客户端的连接,查询缓存用于存储和检索常用查询结果,以提高性能。分析器则解析SQL语句,生成语法树,而优化器负责选择最优的查询执行计划。这一流程确保了MySQL能够高效地处理各种复杂的查询请求。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
  • 本文探讨了使用Python进行微服务架构设计的合理性和适用性。首先,介绍了微服务的基本概念及其在现代软件开发中的重要性。接着,通过具体的业务场景,详细分析了Python在微服务架构设计中的优势和挑战。文章还讨论了在实际应用中可能遇到的问题,并提出了相应的解决方案。希望本文能够为从事Python微服务开发的技术人员提供有价值的参考和指导。 ... [详细]
  • Halcon之图像梯度、图像边缘、USM锐化
    图像梯度、图像边缘、USM锐化图像梯度、图像边缘、USM锐化图像梯度、图像边缘、USM锐化图像卷积:1.模糊2.梯度3.边缘4.锐化1.视频教程:B站、 ... [详细]
author-avatar
手机用户2502858383_827
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有