西天取经,前端面试汇总, 持续补充中...
html篇
- HTML语义化? 为什么使用
- html5新特性
- 响应式原理
- head和body 引用js文件有什么不同, 需要注意什么
- H5是什么? 用到过H5那些技术
- meta viewport 是做什么用的,怎么写
- WebSocket了解吗
css篇
- 盒模型和标准模型的区别?
- canvas和svg比较
- 实现左边div宽度200px, 右边自适应铺满的布局
- 常见清除浮动
- css选择器 < + , 以及选择器优先级
- flex布局
- BRC是什么,原理
- display 属性
- 重绘与回流
- float定位原理
- z-index 如何形成层叠上下文
- 什么是雪碧图
- 隐藏内容可以用什么方法
- 如何解决浏览器样式兼容
- 使用css 预编译(sass)优缺点
- inline和inline-block和block三者有什么区别
- 响应式设计与自适应设计有何不同
- 去除inline-block元素间间距的方法
- relative和absolute 的区别
- css3动画,渐变,滤镜(加分项),FLIP动画(加分项)
- css变量,自定义变量(加分项)
javaScript篇
- es6新特性,是否了解es7, es8其他新特性
- let, const, var 的区别
- setTimeout 和 setInterval 的区别
- for遍历 里面使用setTimeout 输出啥
- 怎么使用setTimeout 实现setInterval
- 闭包的理解和代码实现
- js实现类的方式? 怎么继承
- iframe怎么用,优缺点
- async/await
- 立即执行函数this指向
- 节流和防抖
- 实现过promise吗, promise怎么用, 能不能手写下promise
- 面向对象你怎么理解
- 说说事件循环(Eventloop), 微任务和宏任务区别
- 事件委托
- 深/浅拷贝
- 作用域和作用域链
- 原型和原型链
- GET和POST的区别
- Map和Set的区别和用法
- typeof输入那些类型, instance of呢
- new一个对象发生了什么
- 简单阐述下Proxy拦截器
- 递归实现
- 柯里化
- 手写Ajax
- 正则实现trim()
- 前端模块化
- this的指向
- bind 实现方式
- 用过Symbol吗,什么场景用
- 迭代器是什么,怎么自定义迭代(for of),异步迭代
- Promise A+规范,手写all、race、any、allsettled
- 用过生成器吗,什么场景用
- 推测async/await的原理,用生成器模拟下
- 宏任务和微任务,node和浏览器差异
- 正则表达式,NFA和DFA(加分项)
- CMD和UMD,ES Module的差别
- V8的GC过程,堆栈区别
- http缓存机制,CDN原理
- https,http2,http3(加分项)
- node端web框架,express,koa,egg/nest,洋葱模型,AOP,IOC(加分项)
- 流的概念,怎么处理
- 异步和同步API,libuv(加分项)
- Worker,thread worker(加分项)
- typescript基础
- 内存泄漏是什么
Vue篇
- vue 生命周期 (10个), 钩子函数执行顺序
- 说下vue3 setup编程方式的理解
- 双向数据绑定原理, v-model原理
- 父子、兄弟组件之间传参及通信
- vue-router两种实现方式,区别
- watch, computer, filter用法和区别
- 虚拟DOM
- MVC和MVVM
- axios 理解,怎么用promose 实现axios
- 说说vuex
- 路由守卫
- 预渲染和SSR
- Vue的seo问题
- vue中$set有什么用
- Vue怎么实现对象和数组的监听
- 说明下slot插槽的理解
- v-show和v-if 的区别
- vue组件data为什么必须是函数
- vue中key的作用
- 对vue项目做过哪些优化
- vue源码有做过研究吗
- 单点登录原理,权限控制怎么做(加分项)
react篇
- React 的 diff 算法工作过程
- React Hooks
- React 中的 setState 是同步还是异步
- React 性能优化
- 高阶组件
小程序篇
- 生命周期
- hybrid用过吗
- 怎么传参,跳转页面
- webview
webpack篇
- loader和plguin的区别
- webpack工作原理,插件原理,module federation(加分项),vite为什么快
- 常用loader 和 plguin
- 怎么配置反向代理
- 减少页面加载时间方法
- webpack构建流程
- 如何按需加载代码
- 转义出的文件过大怎么办
- webpack与gulp的不同
- 如何利用webpack来优化前端性能
- webpack的热更新是如何做到的?说明其原理
浏览器篇
- 常见跨域方案 (JSONP, postMessage, CORS)
- HTTPS 原理
- 页面输入url 到页面加载发生了什么?
- 三次握手,四次挥手
- session, cookie, token区别
- 什么是 XSS? 如何预防
- 什么是 CSRF? 如何预防
- 什么是 Rss? 如何预防
- http状态码有哪些
- HTTP 各版本
算法篇
- 常见排序算法 (冒泡,插入,快排,选择,二分查找, 计数,归并) 数组去重
- 时间空间复杂度理解
- 求N个数之和 1/2 + 1/3 + ... + 1/N ?
- 第N个数是多少? 1, 3, 2, 42, 19, 输入getNumber(2) // 3
- 求数组中,连续多少个数相加的和最大
[2, 7, -10, 8, 22, -2, 13, -9, 5, 3, -8, 7]
// 8+22-2+13 = 44 4个数
- 农夫养牛
- 玻璃瓶装糖果
- 无人机运沙
项目篇
- 微前端了解吗
- 介绍下乾坤微服务框架
- 你是怎么设计搭建一个项目的?
- 怎么做前端性能优化
- 谈谈对前端、客户端架构的认识?
- 微前端(加分项),WebComponent(加分项)
- CI/CD怎么做,git操作,容器部署特点,怎么做监控,线上问题排查思路
- 是否了解混合式开发框架uniapp, taro
面试篇
- 离开上家公司的原因
- 公司吸引你的点是有哪些
- 最近做了什么
- 有什么职业规划
- 对新环境新公司有什么要求