大大小小的公司加起来大概有十面,总结一下常问到的题和准备时用到的资源,就继续滚去学习了
JS
- 闭包(必考)一定要深入理解,各种使用到的场景,比如模块化
- this的指向
- apply,call,bind
- 箭头函数和普通函数的区别
- JS数据类型,介绍
bigint
,symbol
- 如何判断数据类型
- 深拷贝与浅拷贝
- 说说你用到的ES6
- let暂时性死区
- Set,Map,WeakSet,WeakMap (特性和使用的场景)
- JS中for循环的几种形式及区别
- 数组去重的方法(分析各种方法的时间复杂度)
- Promise(必考)深入 Promise.all() Promise.race() 使用场景
- async与await
- JS中的类,怎么实现
- ES5中的继承和ES6中的继承
- 函数柯里化+对函数式编程的理解
- Event loop 宏任务 微任务
- JS中的异步编程
DOM
- 事件委托
- 冒泡和捕获 (顺序,如何取消冒泡)
- addEventListener的参数和使用
CSS
-
场景题
在移动端实现一个正方形,离屏幕左右间距都是30px
各种居中
如何画三角形(多种方法)画梯形
两栏布局
-
css定位:position属性(absolute的定位)
-
flex的各种属性
-
清除浮动的方法
-
选择器优先级
-
移动端适配 rem原理
-
CSS动画 transition的属性 transform的值
HTML
- HTML常用行级标签和块级标签 (区别)
- HTML5语义化标签的优点
网络
- 三次握手 四次挥手(为什么是三次,四次)
- http与https
- https的加密通信原理
- http请求方法
- 简单请求和非简单请求,Option请求
- http状态码
- 301和302的区别 (具体到使用场景)
- 强缓存和协商缓存 (一定要深入了解,具体到Cache-Control中no-cache和no-store的区别)
- cookie,localStorage, sessionStorage三者区别
- 跨域的解决方法(jsonp的详细实现过程)
- TCP和UDP的区别
浏览器
- 输入url后的整个过程
- CSS和JS阻塞浏览器渲染吗
- 回流和重绘
- 前端性能优化
webpack
如果只配置过,千万不要写到技能里!
- Loader和Plugin的区别
- webpack你用过哪些插件(会考察细节的使用)
- Babel原理
- 模块打包原理
Vue
- VUE中组件之间如何通信
- 说说如何实现Event bus
- Vue2和Vue3的响应式数据原理(Proxy使用过吗?具体如何实现的?)
- vue生命周期
- vuerouter hash路由和history路由实现原理
- 计算属性computed以及里面的getter和setter
- v-if和v-show的区别
- vue2和vue3的区别,vue3的新特性
- vue3里的ref和reactive
- vuex的使用
- vue和react区别
- 如何简单实现vuex(描述思路)
React
没学好,问得不多~
- React如何实现组件间通讯
- React hooks
算法
- 排序(冒泡和快排最常考)
- 二叉树的种类
- 深度优先搜索和广度优先搜索怎么实现 用什么数据结构
学习资源
总结
前端实习生面试 ,大多考察的是基础,上面都是些常见的题,学习的时候不要浮于表面,什么背背题就完事了,一定要自己上手实操,像JS中实现继承,我就只看过博客,并没有自己去动手实现过,面试官一段问起来就虚了,这次面试让我发现了很多知识都学习得不够深入,面试官一问原理什么的,就完犊子了,不说了,滚去学习,加油啊,铁铁们!