七厂面经--应届小前端的破局之路

  1. 页面适配方案:百分比,flex,vh,vw

  2. 平时对js和css基础有过了解吗

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

  4. 解释下重绘和回流

  5. 说一下js中的类和java中的类的区别

  6. 说一下js中如何实现函数重载

  7. webpack动态加载

面试感受:

58同城是我面的最早的一家,一面是电话面,大概聊了有一个小时。整个面试过程很nice,最后让面试官给我一个评价。讲真,面试官很真诚,说我的表现是超预期,但是在年限和经验上有所欠缺,hr那边可能会影响定级。我表示理解,毕竟确实年限短。

58同城二面

  1. 自我介绍

  2. 为什么刚工作不久离职了

  3. 业务中负责什么

  4. node偏运维方向的有没有了解过(docker k8s)

  5. 业务中主要用node干了什么

  6. react生命周期有了解吗

  7. 说下react-router源码你看完后印象深刻的部分

  8. 数组去重怎么实现,不用set怎么实现

  9. 实现一下es6的extends

  10. 有没有接触过移动端,小程序,h5等方向

面试感受:

二面是视频面,面试官和我聊了一下接下来的发展方向,描绘了一张美好的蓝图。听起来还不错,虽然没听懂。某些不可说的原因,58同城结束在二面,后续没有再进行。

百度一面

  1. 自我介绍

  2. js数据类型和存储方式,如何判断

  3. typeof [] 返回什么

  4. new操作符 做了什么

  5. 数组中一万个数据,访问第一个和最后一个效率会有什么差异,为什么

  6. forEach for in for of 的差异

  7. 如何改变this指向

  8. js中函数是如何调用的

  9. 说下原型和继承

  10. 浏览器缓存

  11. 说下浏览器事件循环

  12. js是单线程还是多线程,为什么这么设计

  13. css弧形永动动画实现

  14. css 1px像素适配

  15. css设置div宽高比3:4 padding-bottom:75%

  16. 说下transform 和transition

  17. 类数组怎么转换成数组

  18. new Array()接收的参数是什么

  19. get和post的区别

  20. http状态码

  21. react生命周期

  22. setState更新是同步还是异步

  23. axios源码整体架构

  24. 手写Promise.all

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

  26. Promise都有哪些状态

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

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

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

面试感受:

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

百度二面

  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里都是微任务吗

      11. 平时怎么学习的

      12. koa2中间件和redux中间件比较,原理

      13. koa2的洋葱模型和redux中间件的洋葱模型一样吗

      14. 两个compose的大概实现,reduce的妙用

      15. 对比一下express,koa2(我连同比较了egg)

      16. 为什么不要在循环、条件语句或者嵌套方法中调用Hooks

      17. new Promise返 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 回的实例和实例then方法执行后返回的promise是一个吗

      18. 平时有浏览过哪些国外的网站吗

      面试感受:

      女面试官,聊了很多,感觉想早点下班。hh,我要写代码,刚写了大概,面试官说可以了,可以了,之后约了二面。

      快手二面

      1. 说一下为什么要用hooks,解决了什么问题

      2. react函数组件和类组件触发更新的方式有哪些

      3. react的强制更新有了解吗

      4. react在一秒内点击按钮多次(+1),如何获取最后一次的新状态

      5. react-router权限路由写一下

      6. 实现一个带缓存的求阶乘函数

      7. 说说你对koa2中间件的理解

      8. 某些接口允许跨域,某些不允许,如何实现?能不能使用koa2中间件的方式实现一下?

      9. koa2中ctx.set的等价写法

      10. 用node如何实现一个带压缩和缓存的http-server?

      面试感受:

      面试官给我一种道法自然,万法皆通的感觉,某些想法秀到我了,很强。问的基本都答上了,很快约了三面。

      快手三面

      1. 自我介绍(侧重说下个人优势和项目亮点)

      2. 为什么刚工作不久离职

      3. 如果有成熟稳定的A团队和从0到1的B团队,你倾向哪种

      4. 如果B团队做不好有可能会因为业绩不达标被砍掉,做的好会有高收益,A团队一直是稳定的,你倾向哪种

      5. A团队业务线偏向底层功能开发,为B团队服务。B团队在A团队产出基础上,会面对更多复杂业务,你倾向哪种

      6. 反问1:刚才提到的AB部门的业务覆盖场景是只有pc端吗?还是也有其他端?

      7. 反问2:工作模式是否为导师制?

      面试感受:

      无关技术,只谈选择。我选了BBB。之后约了hr面,然后又加面,其实也没问太多技术问题。流程和字节基本同步,薪资待遇持平,只是多了一个背调。我比较想早点入职,选了更快的抖音。说实话,有点舍不得负责招聘的hr小姐姐,hh,给了我很多祝福。

      美团一面(部门A)

      我怀疑美团有毒,二面必挂。第一次面到2面,题基本都答上了,莫名挂掉。然后又被打捞,依旧面的很顺利,二面挂掉… 好家伙,分手都没个预兆。遗憾是有,但也无能为力。美团到店,我可能到不了店了。

      1. 自我介绍

      2. 为什么刚工作不久就离职了

      3. 项目中常用的linux命令

      4. 业务中打包怎么做的

      5. 如何查询某个进程占用的端口号(linux中) netstat -tunlp|grep 80 lsof -i:80

      6. 实现一个new操作符

      7. git reset 和git rebase了解吗

      8. 实现Object.create

      9. 实现数组扁平化函数flat

      10. webpack有哪些优化方案

      11. loader和plugin有写过吗

      12. react合成事件了解吗?

      13. 这些事件处理函数最终挂载到了哪?

      14. react中如何阻止冒泡

      15. react中setState同步还是异步

      16. react15和react16更新机制的差异

      17. 为什么react16架构升级后就能中断更新,根据什么决定是否中断

      18. react源码看过哪些?

      19. react中调和的部分是在哪个包?有看过实现吗

      20. hooks为什么不能在条件或循环中使用,原理清楚吗?

      21. react为什么要引入hooks,解决了哪些问题

      22. 类组件如何实现逻辑复用?

      23. 打印题

      const o1 = {

      text: ‘o1’,

      fn: function() {

      return this.text

      }

      }

      const o2 = {

      text: ‘o2’,

      fn: function() {

      return o1.fn()

      }

      }

    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    《java面经-百度准入职老哥整理.pdf》是一份关于百度准入职面试的Java面经整理。这份面经是由百度准入职的老哥整理而成,其中记录了一些面试时可能会遇到的问题以及解答方法。 这份面经对于准备参加百度准入职面试的人来说非常有价值。首先,它列出了一些常见的面试问题,涵盖了Java语言的各个方面,包括基础知识、数据结构与算法、设计模式、多线程、网络编程等等。通过仔细研究和复习这些问题的答案,可以帮助面试者全面了解Java语言的特性和应用。 其次,这份面经还提供了问题的解答思路和方法,帮助面试者理清思路,正确回答问题。这对于很多面试者来说特别有帮助,因为在面试时有时会遇到一些棘手的问题,有了这份面经的指导,面试者可以更好地掌握应对策略。 不过需要注意的是,面经作为一份参考资料,不能完全依赖于它来准备面试。面试官可能会问一些不在面经中列出的问题,因此考生还是需要自己对Java语言有充分的了解,并能够熟练运用。同时,面试官还会关注考生的沟通能力、解决问题的能力以及对新技术的学习和掌握能力。 总体来说,《java面经-百度准入职老哥整理.pdf》是一份非常宝贵的资料,可以帮助面试者对Java面试中可能会遇到的问题有更深入的了解,提供了解答思路和方法。但记住,面试准备还需要多方面的知识积累和实践经验的积累,才能在面试中展现自己的优势。

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值