作为一名程序员我不忘初心,七厂面经--应届小前端的破局之路(1),怒肝三个月啃完这110道面试题

  1. Promise中用了什么设计模式

  2. Promise都有哪些状态

  3. 算法12345678.01 =>123,456,78.01

  4. 算法12345678.01=>12,345,678.01

  5. 从地址栏输入地址到页面回显,都发生了什么

面试感受:

女面试官,题是有点多,但感觉还好,都是偏基础。印象最深的是算法部分,面试官出了题,我直接说了思路,好像还巴拉巴拉说了一下其他的。面试官说:哎呀,我只是想让你做个题…(撒娇语气??) 好的,做题。

百度二面

  1. 自我介绍

  2. 业务中你用node都做了什么

  3. 你对node还有什么想分享的吗,觉得用起来爽的部分(gzip pipe)

  4. 业务中数据是怎么存储的,node为什么没有接入数据库

  5. node单线程容易崩溃,怎么维护服务的

  6. pm2内部机制了解吗

  7. cluster了解多少

  8. 业务线如何用端口号区分(nginx http-proxy)

  9. 业务上有什么坑嘛 (环境多)

  10. webpack常用配置

  11. webpack插件写过吗

  12. webpack常用插件

  13. 关于webpack你还有什么想分享的吗 (同步加载异步加载的实现)

  14. 浏览器地址栏输入请求地址到页面回显发生了什么

  15. 重绘和重排了解吗

  16. 重绘和重排如何做取舍

  17. 如何将css内容插入到页面上(style-loader)

  18. 如果让你实现style-loader,你打算怎么做

  19. 算法题-手写快排

  20. 算法题-查找一个字符串中出现次数最多的字符

  21. 算法复杂度层面比较一下快排和其他排序

  22. 项目是内部使用吗 (是,未开源)

  23. 有没有考虑过高并发场景,如何解决(缓存,压缩,负载均衡,集群)

  24. 现在是在职状态吗

  25. 最后离职日期是多少

  26. 手上有没有其他offer

  27. 如果今晚三面是否有时间(说有上线,推迟了)

  28. 反问一:百度App部门有没有使用node的场景

  29. 反问二:App部门是不是只有移动端场景,有没有其他的,比如pc

  30. 反问三:百度怎么做容灾的

  31. 反问四:百度App是分工明确还是也会出现身兼多职的情况

  32. 反问五:给我一个今后学习发展的建议和这次面试的简单评价

面试感受:

不得不说,和二面面试官聊的很是带劲,给我很多鼓励,完事大概是晚上十点多了,意犹未尽。当场要整三面,当时也恰好11点要上线,就改时间了,三面约到了一周后。

百度三面

三面面试官是手机百度部门的leader,电话面的,主要是问了我一下期望薪资和来百度的意愿。然后又是一波鼓励,还教我怎么谈薪资,感动到爆炸。说实话当时我已经决定同等薪资必去百度,奈何后续流程太长了,我已经接到抖音正式offer邮件那边还没反馈。

抖音一面

  1. 自我介绍

  2. 说一下业务中你负责的部分

  3. 业务中数据是怎么存储的

  4. 业务中拖拽如何控制位置的,适配怎么处理,全屏怎么控制

  5. 你用nodejs和java分别做了哪些业务

  6. 业务中的缩略图是什么,实现方案

  7. 说下jwt

  8. 说下js中数据存储方式

  9. 知道内存碎片怎么产生的吗 v8

  10. post请求有几种方式触发

  11. post的ContentType类型有哪些(application/x-www-form-urlencoded/multipart/form-data/text/plain)

  12. 知道jwt有哪些缺点吗

  13. 说一下http和https的区别

  14. https的tls了解吗

  15. 说一下锁(懵逼),举例是读锁和写锁

  16. 为什么要去看axios的源码,大体实现

  17. 业务中权限是怎么接入的,数据表怎么划分的

  18. 能说一下css盒模型吗

  19. 说下box-sizing中border-box 和content-box的区别

  20. this指向

var fullname = ‘1’;

var obj = {

fullname: ‘2’,

prop: {

fullname: ‘3’,

//如果改成普通函数呢?

getFullname:()=> {

return this.fullname;

}

}

};

console.log(obj.prop.getFullname());

var test = obj.prop.getFullname;

console.log(test());

  1. 算法题1:节点渲染

const el = require(‘./element.js’);

const ul = el(‘ul’, {id: ‘list’}, [

el(‘li’, {class: ‘item’}, [‘Item 1’]),

el(‘li’, {class: ‘item’}, [‘Item 2’]),

el(‘li’, {class: ‘item’}, [‘Item 3’])

])

const ulRoot = ul.render();

document.body.appendChild(ulRoot);

    • Item 1
    • Item 2
    • Item 3
      1. 算法题2:属性获取

      {

      a:{

      b:{

      c:{f:“aa”}

      },

      d:{

      e:{g:“bb”},

      h:{i:“cc”}

      },

      j:{

      k:“dd”

      }

      }

      }

      // [f,g,i,c,e,h,k,b,d,j,a]

      面试感受:

      面了百度和58同城,有点膨胀,字节让我清醒。算法被吊打,只写了个大概和思路。感觉要凉了,最后反问环节我已经没什么想问的了。如果说有,我想问一下我还有机会吗?最后说了一下我的遗憾,表示我擅长的没有完全体现出来,命中的很多盲区。好家伙,峰回路转,面试官说我还是有其他亮点的,再给我一次机会,就到了二面,感动到冒泡泡…

      抖音二面

      1. 看你简历有提到nginx配置,主要配置了什么

      2. 说下上线部署流程中常用的linux命令

      3. node的进程守护怎么做的,发现非预期故障怎么排查

      4. 项目中为什么选择用nodejs

      5. 业务中负责哪些部分

      6. 手写一个koa2的compose

      7. 手写一个Scheduler类,实现并发控制

      //JS实现一个带并发限制的异步调度器Scheduler,

      //保证同时运行的任务最多有两个。

      //完善代码中Scheduler类,使得以下程序能正确输出:

      //Scheduler内部可以写其他的方法

      class Scheduler {

      add(promiseCreator) { … }

      // …

      }

      const timeout = (time) => new Promise(resolve => {

      setTimeout(resolve, time)

      })

      const scheduler = new Scheduler()

      const addTask = (time, order) => {

      scheduler.add(() => timeout(time))

      .then(() => console.log(order))

      }

      addTask(1000, ‘1’)

      addTask(500, ‘2’)

      addTask(300, ‘3’)

      addTask(400, ‘4’)

      // output: 2 3 1 4

      // 一开始,1、2两个任务进入队列

      // 500ms时,2完成,输出2,任务3进队

      // 800ms时,3完成,输出3,任务4进队

      // 1000ms时,1完成,输出1

      // 1200ms时,4完成,输出4

      面试感受:

      二面问的不多,主要是写代码吧。Scheduler没有完整写出来,koa2的compose写出来了,其他的回答还行,完事约了三面。抖音二面时快手hr打电话告诉我二面过了,当场愣住,我不是正在二面吗?怎么就过了?

      抖音三面

      1. 为什么工作不久离职

      2. 你觉得你擅长哪些技术(react+node+计算机网络)

      3. 说一下进程线程,如何通信?

      4. 两个线程可以直接通信吗

      5. 你觉得node的适用场景是什么

      6. 相比其他后台语言,为什么你更倾向node?

      7. 在业务开发上,你觉得node和java的区别是什么?

      8. node服务的性能监测有没有了解过?

      9. http中间人劫持了解吗?如何解决呢?(说了https)

      10. 为什么https可以做到避免中间人劫持?(说了加密层tls)

      11. 展开说一下tls握手(对称,非对称,对称+非对称的组合)

      12. 加密套件指的是?(举例了AES)

      13. 业务中的安全问题有没有遇到过?怎么解决的?(说了base64,cors,xss,csrf,cookie的httponly和samesite属性)

      14. 你倾向的技术领域和业务场景是怎样的?

      15. 算法1:二叉树层序遍历和s形的层序遍历

      16. 算法2:如何在从左到右升序,从上到下升序,每一行第一个元素大于上一行最后一个元素的二维数组中查找某个数字的索引?如果是一维数组呢?

      17. 算法3:二分法的实现

      18. 算法4:单链表反转

      19. 反问:抖音安全部门主要的业务范围是什么?

      面试感受:

      三面问的更全一点,理论和代码层面的都有,算法2没写出来,其他的应该都抗住了。后续流程很顺利,已拿offer。

      猿辅导一面

      猿辅导那天是招聘专场,一面到底,直通hr面。因为某些非预期情况,不再考虑这边,选了抖音。

      1. 自我介绍

      2. 业务中负责的部分

      3. 业务中数据怎么存储的

      4. 为什么坚持用node

      5. 算法1:promise并发控制

      6. 算法2:前k个元素

      7. js中遍历数组的方式

      8. react中遇到的坑,怎么解决的

      9. 说一下类组件和函数组件

      10. 选择hooks的优点

      11. 什么时候用类组件

      12. 说下http缓存,如何实现

      13. 反问一:这边有没有使用node的场景

      14. 反问二 :业务线中使用的技术栈是什么

      15. 反问三:有没有jq那种老项目

      16. 反问四:面试评价和今后发展的建议

      面试感受:

      和面试官聊的很开心,从技术到业务到技术选型,巴拉巴拉聊了很多。那边是用的angular11,还有vue2.x,后续打算迁移到react技术栈上。

      猿辅导二面

      1. 自我介绍

      2. 诸多业务问题

      3. react diff算法如何实现的,比对复杂度是多少

      4. 如何使用react-dnd完成拖放的,说下主要API

      5. 大数据量场景前端怎么处理,让页面展示尽可能流畅

      6. 业务中看你有涉及到node的文件读写操作,有没有想过如果某个文件被锁怎么处理?

      7. 前端缩略图(截图)方案是什么

      8. 业务中的实时保存会有性能开销,又没有做什么优化?

      9. node转buffer输出字符串会比直接string输出快,你的依据是什么?

      10. 算法一:给定一串数字,求它全排列结果

      11. 算法二:实现类似百度那种联想搜索(模糊匹配)

      12. 收尾闲聊:你觉得一面难还是二面难?我说二面吧,数学不太好,全排列没屡清楚。

      面试感受:

      和面试官聊的依旧很开心,二面聊了很多业务。好家伙,我和面试官开始在白板上画图交流了。咱数学确实菜,全排列也没整清楚,和逻辑混一起更想不明白。面试官表示理解,然后约了三面,部门大leader。

      猿辅导三面

      1. 根据简历确认了一下基本信息

      2. 为什么刚工作几个月就离职

      3. 看你大学学的挺多的,高中是不是没好好学习呀(笑,解释说高中是为了高考被动式学习,大学是为了工作主动学习)

      4. 日语N2是指?(解释了下等级,日企门槛)

      5. 看你对前端热情挺高的,为什么选择了前端呢?

      6. 然后面试官直接给我安排了研发方向,前期ng,后期react,说是在组建一个复杂架构小组,目前两人,预计4-6人。(说实话,有点慌)

      7. 做个题吧,给定学生id和分数组成的列表,写一个函数,通过id获取排名,注意分数相同并列名次的处理(写了七七八八,后边面试官说思路可以,就这样吧)

      8. 然后让我等下hr,面试官去下一场面试了(面试专场,一下午来了大概20+,每个面试官都很忙,后续基本没有反问时间)

      面试感受:

      亲切,看面试官第一眼就觉得很亲切。整体聊的也很顺利,过往经历和一道算法题,完事。看的出来,是想要我的。之后hr面结束,打道回府。

      猿辅导hr面

      1. 之前有了解过猿辅导吗

      2. 确认了一下简历基本信息

      3. 还有其他公司在面试吗,进展如何?

      4. 说了下福利,餐补800,六险一金,不限量零食下午茶,健身房,晚下班打车企业报销,巴拉巴拉……说了好多福利

      5. 聊了下薪资,之前的,预期的。

      6. hr表示不会因为工作经验而刻意压薪资,扁平化管理,会根据每一轮面试官评价来定(给我的预期是校招生水平,实际是超预期)

      7. 你是97年的嘛?(惊讶) 感觉你表现上更成熟一些(我说和个人经历和读的书有关吧)

      8. 个人经历,比如呢?(笑,爱情算吗?)

      9. 然后和hr聊起了爱情观

      10. 所以你现在状态是?(单身)

      11. 大学读了哪些类型的书?

      12. 我问了下工作时间,早10晚7,双休不打卡

      13. hr表示offer流程会根据我这边其他公司面试进展随时同步,很热情的送我到电梯门口

      面试感受:

      面试体验确实不错,后期就有点遗憾了。也难怪,我的年限和期望偏差确实有点大,这边流程上多加考虑也可以理解。

      快手一面

      1. 自我介绍

      2. 项目应用场景和优势

      3. 写个继承案例

      4. Object.create实现

      5. Object.create传null和{} 有啥区别吗

      6. 手写promise(写完then后面试官说可以了)

      7. 实现一个数组扁平化方法flat

      8. js为什么设计成单线程

      9. 事件循环说一下

      10. Promise里都是微任务吗

      自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

      深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

      因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
      img
      img
      img
      img
      img
      img

      既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

      由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

      如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
      img

      前端面试题汇总

      JavaScript

      性能

      linux

      前端资料汇总

      一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
      img

      中…(img-HUsN3Atj-1712473840019)]
      [外链图片转存中…(img-cm9HzcSw-1712473840020)]

      既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

      由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

      如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
      [外链图片转存中…(img-tBR9xEaS-1712473840020)]

      前端面试题汇总

      JavaScript

      性能

      linux

      前端资料汇总

      一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
      [外链图片转存中…(img-j5935I8F-1712473840020)]

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值