前端面试技巧

前端面试葵花宝典

今天参加了一个分享大会,是关于前端面试的,虽然自己目前并无跳槽面试需求,但是觉得了解一下行业标准对自己现在查缺补漏更好一些。大会是线上的从早晨9点就开始了,一直到晚上七点多才结束,其实里面有10个分享嘉宾,不过我开头和中间有事都没有听见,听到的4~5个分享讲师分享的内容真的是干货满满,有点相见恨晚的感觉,于是会后我就想整理一下,让更多人也能有机会更早知道这些面试规则和技巧,早知道早去练习这些能力。对于准备跳槽的小伙伴会更有帮助。

关于这个结果,不管你写对了写错了,都可能会问到你如下知识点:注:前面有整理过文章欢迎找答案:头条面试题你接住了吗 — 回调地狱引出的深度考察

  1. 宏任务、微任务先后执?顺序,Promise 以及 async 中哪些部分是同步,哪些部分是异步/li>
  2. 还有哪些时序相关的函数
    1. setInterval
    2. 浏览器端:requestAnimationFrame、requestIdleCallback;
    3. Node 端:setImmediate、nextTick;
    4. 分别有什么区别何实现 Polyfifill/li>
  3. 如何实现 Promise;async 函数编译 ES5 代码时会变成什么ue 的 nextTick 如何实现的/li>
  4. Node 的事件循环流程否了解过 queueMicrotask 函数

题??:描述?下 HTTP 缓存策略?络)

  1. 强缓存、协商缓存;HTTP 常?的头部、状态码,基本的流程
  2. HTTP、HTTPS、HTTP2 的区别;?络模型,TCP 三次握?,四次挥?
  3. ?对称加密,证书,Hash,常?的加密算法,HTTPS 握?过程;多路复?
  4. DNS、CDN、WebSocket;?络安全,中间?攻击、CSRF、XSS、SQL 注?,同形异义字;URL 编码

题?三:请谈?下你对 React 的认识框架)

  1. ?命周期,新旧?命周期的区别状态组件、PureComponent、?阶组件(HOC)
  2. Hooks,Provider/Context,Ref,Portal,错误处理 Redux,中间件;
  3. JSX 原理染?段:mixin,HOC、Render Prop;虚拟 DOM 的原理;setState 同步异步,浅?较(shallowEqual)
  4. 合成事件,Fiber、FiberNode、workInProgress;SSR、React Native;性能优化:耗时、帧率、CPU、内存泄漏、回流重绘

如何面试/h3>

接到?试通知怎么办/strong>

  1. 可以礼貌的拒绝现场的电话?试

  2. 协商沟通?试时间、?试?式(电话、视频、现场)

如何做?我介绍/strong>

  1. 基本情况

  2. 与岗位的匹配度或优势

  3. 简历上容易忽略的细节

  4. 简历上没显示出来的点

如何?对??不擅?的领域、知识点/strong>

  1. 没了解过,坦诚表达??没了解过

  2. 了解过,但不熟;先说明??不熟悉,再说明??对其?些猜测或想法。

如何?对算法题/strong>

  1. 从易到难

  2. 写伪代码

?试进?尾声,?试官问“你有什么要问我的吗,该说什么/strong>

  1. 不要问?试结果

  2. 可以要求加问?些你擅?的问题

  3. 了解?些团队的业务和技术栈

二、如何通过一道编程题考察候选人的水平 宗羽-盒马

大部分人面试时候都不喜欢面试时候coding,原因可能有很多:紧张、记不住API、业务中代码大部分不会的 上一查啥都有粘过来改改,自己写不太会…等,不过站在面试官的角度去看看面试官如何看待面试coding这件事吧

对面试官有哪些挑战呢/h3>
  1. 面试官和候选人的知识结构有差异,错过优秀的人
  2. 遇到「面霸」,但实际能力一般,招到不合适的人
  3. 在短短半个小时到一个小时内要判断一个人,其实很难

所以面试官觉得:笔试还是相对靠谱的方法(Talk is cheap,show me the code)

笔试中常见的问题

  1. 考通用算法,Google 能直接搜到
  2. 题目设计有问题,要么满分,要么零分
  3. 和实际工作内容脱节

面试官认为好的笔试题

  1. 上手门槛低,多多少少都能写一点,不至于开天窗
  2. 考点多,可以基本摸清候选人的代码综合素养
  3. 发挥空间大,同样的结果,不同的实现方式?以看出候选人的技术深度

面试者常见的问题

  1. 没有判断入参个数
  2. 仍然用了本地加法
  3. 还能优化吗/li>

另外一种更开放式的笔试形式

  1. 给一道题目,让候选人建一个 Github 仓库来完成
  2. 题目有一定难度,但是?以 Google,也?以用三方模块,和我们平时做项目差不多
  3. 通常面向级别较高的候选人

这种方式主要是考察面试者的编程习惯和编程能力,如代码风格、态度是否端正、细节处理的怎么样、有没有做优化、工程化素养有没有、有没有测试用例等等去考察面试者的各种能力

笔试demo1:10GB 的文件无法一次性放进内存里处理,内存只有 4GB

解题思路

  1. 既然没办法一次性在内存中排序,那我们能否将10GB 的文件拆分成若干个小文件
  2. 小文件先分别排序,然后再合并成一个大的文件

如何用代码实现呢/strong>

  1. 这里需要用到一种数据结构:堆

  2. 堆:就是用数组实现的一个二叉树

  3. 堆分为:最大堆和最小堆,下面是一个最小堆(父节点小于它的子节点)

  4. 堆有一些特性

    1. 对于一个父节点来说

      1. 左节点位置: 父节点位置 * 2 + 1
      2. 右节点位置:父节点位置 * 2 + 2
    2. 很容易查找最大值 / 最小值

完整的参考实现

https://github.com/gxcsoccer/external-sorting

其他考量的点

  • 工程化素养
  • 是否有单元测试
  • 覆盖率是否达标
  • 是否有 benchmark
  • 依赖的模块版本如何设置
  • 如何配置 CICD
  • 文档、注释
  • Git Commit 规范

三、如何增加大厂面试的成功率 大史不说话-字节

大史不说话的分享是以自身经历来说面试,真实好用拿得走,如下是他的自身经历:

有坑!不难,我看出来了。

解法?:

解法三:

解法 – 校验:

解法 – 304:

背景:

解决:

  • 部署:?痛接?
  • 代码死循环断!
  • Alimonitor-错误采集指令
  • 性能:
    • 暴露配置
      • worker进程数
      • 内存?位(max_old_space_size)
      • 模块缓存策略
    • SSR失败,浏览器端继续渲染
      • 面试准备

        了解岗位、考察维度、准备简历、准备?试问题、总结复盘校招和 招差异

        • 准备简历
          • 职位信息
          • 考察维度
        • 准备?试
          • 考察维度
          • 总结复盘

        职位解析

        • 团队协作

          • 在这?, 你将有机会与设计师和产品?起,完成产品Web功能的设计与实现;
        • 技术能?

          • 有机会做全栈式开发;
          • 有机会做移动端开发;
          • 有机会做性能、架构等??的改进与优化;
        • 技术热情

          • 有机会??亲?打造?个产品的从设计到发布; 你还将加?到我们业内最前沿Web技术的研究与开发中。
        • 基础扎实,涉猎?泛

          • 我们希望你,熟练使?各种Web前端技术,包括HTML(5)/CSS(3)/Javascript等,并有相关的项?开发经验或成果;
        • 理论+实践

          • 我们希望你,熟悉前端?程化,?过git,gulp或webpack等?具,最好有??的github仓库;
          • 我们希望你,深刻理解Web标准,对可?性、可访问性等相关知识有实际的了解;
        • 服务端开发经验

          • 我们希望你,有基于Ajax应?的开发经验,有NodeJS/Java开发经验,或者有移动端开发经验;
        • 计算机基础

          • 我们希望你,对算法、数据结构、建模有?定了解;
        • ?凡?平常? 做?凡事

          • 同时,我们还希望你: 学习能?强,对新事物保有好奇?,并能快速适应新环境
        • ?起拼?起赢

          • 良好的沟通能?和团队协同能?;能与他?合作,共同完成?标
        • 梦想永在,?证预?

          • 对所在领域有热情,相信?法总?困难多,善于独?思考并反思总结

        准备简历

        • 信息简洁且完整
          • 教育背景、专业技能、实习经历、项?经验
          • 荣誉成果、使?短句、简洁排版
        • 内容真实且客观
          • 数据或实例、真实不造假、不过度包装
        • 突出亮点
          • 关键词抽象

        简历案例

        考察维度

        • 基础
          • 计算机相关专业,学业课程优秀
          • 数据结构、算法等基础扎实
          • 前端基础、编码能?
          • 加分项:
            • 后端开发经验、算法
            • A+参考项:
              • 前端标准或主流框架深?理解并参与贡献
              • 国际Top院校和实验室相关领域
              • 国际?赛奖项
        • 成果
          • 专注前端领域,具有前端项?经验
          • 深?了解技术在实际场景中的运?
          • 钻研能?,运?技术解决实际问题
          • 加分项:
            • 重要产品中担当主要??
            • ?博、出书或译书经验
            • A+参考:
              • 在开源 区中有突出影响?的技术项?或有价值的商业项?
              • 业界影响?的发明专利
              • 顶级期刊会议发表论?演讲或其他有影响?的学术成果
        • 热情
          • 了解前端相关领域或扩展领域的技术
          • 有??学习技术信息获取途径
          • 对前端有强烈好奇?,愿意额外投?精?
          • 加分项:
            • 具体事例?撑对技术上有狂热的追求
            • A+参考:
              • 对前端领域有充分了解
              • 对领域问题有??的?解
              • 愿意持续投身其中解决问题

        人才观

        1. **聪明:**IQ、EQ、LQ
        2. **?实:**?智成熟、能屈能伸
        3. **乐观:**有理性地充满希望
        4. **?省:**经得住表扬也经得住批评

        ?试?法**-STAR**

        “可以分享?个你参与过 并认为很成功的项?么

        • 你在项?中的??是什么,遇到什么挑战,怎么应对的
        • 这个?案的核?思路是什么,这么设计是基于什么考虑
        • 最后取得了什么样的结果,为什么你认为它是成功的
        • 你作为团队成员所遇到的最困难的事情,是怎么解决这个困难的/li>

        ?个问题,它不仅仅是?个问题

        切忌:?问?答、不问不答

      笔试

      一般流程:将2~3道笔试题发给候选人,异步进行,允许查阅资料,约定时间上交

      • **代码能力:**思路、规范、性能、封装、拆分
      • **算法能力:**数据结构和算法的应用能力
      • **态度:**是否认证诚实(代码风格、注释、细节)
      • **加分项:**是否有惊喜(TS、测试用例、性能、工程化)

      **测试题目1demo:**通过TypeScript + React Hooks 实现一个 useFetchData

      **测试题目2demo:**在我们业务中经常会遇到列表或者表格页面,需要支持翻页,加载更多,错误处理,loading的功能,希望能够实现一个Hook来抽象这部分逻辑。

      比如接口的返回格式是:

      声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

  • 上一篇 2021年2月19日
    下一篇 2021年2月19日

    相关推荐