前端实习生面试总结

大大小小的公司加起来大概有十面,总结一下常问到的题和准备时用到的资源,就继续滚去学习了

JS

  1. 闭包(必考)一定要深入理解,各种使用到的场景,比如模块化
  2. this的指向
  3. apply,call,bind
  4. 箭头函数和普通函数的区别
  5. JS数据类型,介绍bigintsymbol
  6. 如何判断数据类型
  7. 深拷贝与浅拷贝
  8. 说说你用到的ES6
  9. let暂时性死区
  10. Set,Map,WeakSet,WeakMap (特性和使用的场景)
  11. JS中for循环的几种形式及区别
  12. 数组去重的方法(分析各种方法的时间复杂度)
  13. Promise(必考)深入 Promise.all() Promise.race() 使用场景
  14. async与await
  15. JS中的类,怎么实现
  16. ES5中的继承和ES6中的继承
  17. 函数柯里化+对函数式编程的理解
  18. Event loop 宏任务 微任务
  19. JS中的异步编程

DOM

  1. 事件委托
  2. 冒泡和捕获 (顺序,如何取消冒泡)
  3. addEventListener的参数和使用

CSS

  1. 场景题

    在移动端实现一个正方形,离屏幕左右间距都是30px

    各种居中

    如何画三角形(多种方法)画梯形

    两栏布局

  2. css定位:position属性(absolute的定位)

  3. flex的各种属性

  4. 清除浮动的方法

  5. 选择器优先级

  6. 移动端适配 rem原理

  7. CSS动画 transition的属性 transform的值

HTML

  1. HTML常用行级标签和块级标签 (区别)
  2. HTML5语义化标签的优点

网络

  1. 三次握手 四次挥手(为什么是三次,四次)
  2. http与https
  3. https的加密通信原理
  4. http请求方法
  5. 简单请求和非简单请求,Option请求
  6. http状态码
  7. 301和302的区别 (具体到使用场景)
  8. 强缓存和协商缓存 (一定要深入了解,具体到Cache-Control中no-cache和no-store的区别)
  9. cookie,localStorage, sessionStorage三者区别
  10. 跨域的解决方法(jsonp的详细实现过程)
  11. TCP和UDP的区别

浏览器

  1. 输入url后的整个过程
  2. CSS和JS阻塞浏览器渲染吗
  3. 回流和重绘
  4. 前端性能优化

webpack

如果只配置过,千万不要写到技能里!

  1. Loader和Plugin的区别
  2. webpack你用过哪些插件(会考察细节的使用)
  3. Babel原理
  4. 模块打包原理

Vue

  1. VUE中组件之间如何通信
  2. 说说如何实现Event bus
  3. Vue2和Vue3的响应式数据原理(Proxy使用过吗?具体如何实现的?)
  4. vue生命周期
  5. vuerouter hash路由和history路由实现原理
  6. 计算属性computed以及里面的getter和setter
  7. v-if和v-show的区别
  8. vue2和vue3的区别,vue3的新特性
  9. vue3里的ref和reactive
  10. vuex的使用
  11. vue和react区别
  12. 如何简单实现vuex(描述思路)

React

没学好,问得不多~

  1. React如何实现组件间通讯
  2. React hooks

算法

  1. 排序(冒泡和快排最常考)
  2. 二叉树的种类
  3. 深度优先搜索和广度优先搜索怎么实现 用什么数据结构

学习资源

ECMAScript 6 入门

前端高频面试精粹

神三元

前端知识分享

awesome-coding-js

关于webpack的面试题总结

前端剑指offer

总结

前端实习生面试 ,大多考察的是基础,学习的时候不要浮于表面,像JS中实现继承,我就只看过博客,并没有自己去动手实现过,面试官一段问起来就虚了,这次面试让我发现了很多知识都学习得不够深入,面试官一问原理什么的,就完犊子了,不说了,抓紧学习去,加油啊,铁铁们!