专栏首页玩转全栈前端面试经常问到的一些点
原创

前端面试经常问到的一些点

1、自我介绍环节

这个环节很显然是避免不了的,这个环节候选人应该注意不要平铺直述自己的简历,而是应该尽量做到熟练清晰的介绍自己的教育背景,工作履历,及自己参与过的几个重大的项目,在里面分别承担了什么样的角色,使用什么技术解决了什么样的问题,以及取得了哪些成绩。如果你这部分说的比较刘畅,有底气,不卑不亢,会给面试官一个很好的第一印象,最起码的,会觉得你思维清晰,能够清晰的认识自己的优缺点,简历上提到的一些点大概率都是你自己的产出。

2、前端基础知识考查

这个环节通常所谓的一些点包括:

  1. javascript基础
    1. 闭包
    2. this指向,bind,call
    3. 原型链
    4. 面向对象,如何实现继承
    5. 作用域,var,let区别
    6. 浏览器兼容
    7. 数组、字符串对象考查,例如数组哪些操作可以改变原数组、正则表达式匹配等(一般比较基础,不会太复杂)
    8. cookie,跨域发送cookie等。
    9. session
  2. 网络相关
    1. TCP链接及断开过程,http状态码,304,302,401,20x
    2. Https原理,加密过程
    3. Http2,多路复用,头部压缩
    4. 跨域,如何解决等
  3. 前端缓存
    1. LocalStorage
    2. SessionStorage
  4. 前端安全
    1. xss
    2. csrf
  5. 性能调优
    1. 内存泄漏
    2. ANR

3、编码能力

面试官其实也很care这个环节,如果前面的环节回答的不错,这个环节一般来说,能写出思路基本也可以算过了,但好像某条不是的,某条必须让代码运行通过,各厂要求不一样,既然人家定那种规则就按照哪个规则去办就是哪,对于某条,没有其他办法,面试前,所刷刷leetcode中等难度吧。

如果说前面环节比如基础知识考查回答的不是太理想,这个环节就要注意了,这时候面试官可能会对于你这个环节的期望会高一些,尽量从以下几个方面注意:

  1. 避免随意命名,因为随意命名面试官会认为你代码风格不佳,尽量命名有意义一些。
  2. 尽量不要拿到题目就写,给人一种没有思考就草草入手的感觉,试着想一想,你平常工作是这样的么,拿到一个需求不考虑下各种边界逻辑吗?所以,比较好的做法是:
    1. 先写一下伪代码
    2. 考虑下可能存在的边界条件
    3. 如果是递归实现,看看考虑是否可以转为非递归,(借助stack)
  3. 尽量可以保证代码跑起来,因为前面环节表现不佳,至少这个环节,让面试觉得你可能是一个实战型的选手。

在这个环节,通常会考查一些基本算法,或者前端常用的一些算法,比如:

  1. 排序,二分查找
  2. 输出数组的全排列
  3. 动态规划问题,最长公共子序列、最长上升子序列
  4. 字符串,正则表达式,数组的一些操作
  5. 手写防抖节流
  6. 手写一个promise的实现
  7. 深度克隆一个对象(注意对象属性指向自己,利用map保存中间结果),大数相加(数组+进位)
  8. 实现bind方法
  9. 实现Object.create方法

4、架构设计、工程化

如webpack常见的一些配置项,webpack插件原理,webpack插件开发等,持续构建CI,CD等等。

5、意向素质

这个环节,面试官会评估一下你在同事中的印象是怎么样的,人缘如何,近期你为啥要换工作,稳定性等等因素。

或许还会问问你的学习能力如何,解决问题的能力如何:

  1. 工作中遇到的印象最深的一个技术难点是什么,讲一下怎么分析这个问题,最后怎么解决这个问题,以及前后对比的结果,避免说的空泛,也不要避免假设,最好是拿你真实案例来说。
  2. 你平常有没有看一些开源的库,印象比较深刻的是哪个库,谈一谈他的架构设计。
  3. 产品发布上线,遇到bug,用户访问除了问题,你是怎么处理的,主要考查应变能力。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【译】Profiling Flutter Applications Using the Timeline

    使用Timeline可以查找和解决应用程序中的特定性能问题。它也是一个很好的工具,可以识别出Flutter所提供的所有特性的相对性能成本,并允许您做出更明智的决...

    brzhang
  • 万万没想到,做防重复点击坑这么多

    前几天,发现App设置页中有一堆的入口,点击一些item快点会启动两个页,举个例子,就比如说微信这个发现页:

    brzhang
  • 原生app开发与h5开发体验对比

    从移动客户端转h5开发这一个月左右以来,给我最大的感触就是两者之间本质没有任何区别,为了证明我说的这一点,我将用移动客户端来类比h5,来"证明"我说的两者没有任...

    brzhang
  • Java魔法堂:注解用法详解——@Override

    一、前言                                         现在有Son和Parent两个类,且类型Son将会重写类型Parent...

    ^_^肥仔John
  • 智能合约最佳实践 之 Solidity 编码规范

    每一门语言都有其相应的编码规范, Solidity 也一样, 下面官方推荐的规范及我的总结,供大家参考,希望可以帮助大家写出更好规范的智能合约。

    Tiny熊
  • 宋宝华: Linux死锁的成因和常规调试方法(预告片)

    有一次给一群码农演讲,我喷口水喷了快一个小时,说spinlock等的正确使用以及死锁的原因。下面有个人突然问,“老师,请问什么叫死锁?”。

    Linux阅码场
  • 为什么我要写自己的框架?

    其实说白了框架就是使用别人造好的轮子。在软件开发里面就是command+C/command+V。

    哲洛不闹
  • MySQL 8 大集群架构的优缺点总结

    很多开发者可能都没有接触过 MySQL 的架构部署,但是大多数应该都听过集群架构吧。其实 MySQL 集群架构,总结来说一共有好多种,今天我主要总结一下其中常...

    业余草
  • 29篇计算机视觉领域论文,篇篇惊艳!内附链接!

    1. Deep High-Resolution Representation Learning for Human Pose Estimation

    AI科技大本营
  • Master横扫围棋高手,李世石会否是最后一个战胜过AI的人类?

    大数据文摘

扫码关注云+社区

领取腾讯云代金券