Appearance
网站常问问题
更多链接
- 「2021」高频前端面试题汇总之HTML篇
- 「2021」高频前端面试题汇总之CSS篇
- 「2021」高频前端面试题汇总之JavaScript篇(上)
- 「2021」高频前端面试题汇总之JavaScript篇(下)
- 「2021」高频前端面试题汇总之Vue篇 (上)
- 「2021」高频前端面试题汇总之Vue篇(下)
- 「2021」高频前端面试题汇总之React篇(上)
- 「2021」高频前端面试题汇总之React篇(下)
- 「2021」高频前端面试题汇总之浏览器原理篇
- 「2021」高频前端面试题汇总之计算机网络篇
- 「2021」高频前端面试题汇总之前端性能优化篇
- 「2021」高频前端面试题汇总之手写代码篇
- 「2021」高频前端面试题汇总之代码输出结果篇
- 字节跳动最爱问的智力题你会几道?
- 一文搞懂所有Java基础知识面试题
- 1.5万字总结MySQL核心知识点
- 并发编程核心知识点第一弹
- 近万字总结Java集合核心知识点
目录
网络请求
介绍网络7层架构
介绍协议:IP/ICMP/ARP/TCP/UDP/FTP/SFTP/DNS/TELNET/NFS/SMTP/SLIP/PPP/HTTP/HTTPS
url的组成
从输入一个 URL 地址到浏览器完成渲染的整个过程
介绍强制缓存和协商缓存,相关header和功能
TCP三次握手/HTTP请求过程。TCP 为什么是三次握手,而不是两次或四次?
http状态码和使用场景
websocket与http区别
get/post区别。form-data与x-www-form-urlencoded区别
https请求过程(单向认证,双向认证,两者区别)。Diffie-Hellman密钥交换算法。为什么数据传输是用对称加密?
中间人攻击与防范
重排与重绘区别
普通script/defer/async区别
$ajax的实现,fetch与$ajax/xhr区别
同源策略。实现跨域的方法。JSONP原理。
关闭TCP连接四次挥手过程。为什么是四次挥手,不是三次挥手?
XSS/CSRF/SSRF攻击与防范
介绍CSP内容安全策略
CDN加速原理
正向代理与反向代理区别
OAuth2.0授权场景与实现思路
JWT
同样是重定向,307,303,302的区别?
TCP粘包是怎么回事,如何处理?为什么udp不会粘包?
短轮询、长轮询、SSE 和 WebSocket 间的区别?
html
src和href的区别
DOCTYPE(⽂档类型) 的作⽤? 严格模式与混杂模式如何区分?它们有何意义?
script标签中defer和async的区别
常⽤的meta标签有哪些
img的srcset属性的作⽤?
HTML5的离线储存怎么使用,它的工作原理是什么
Canvas和SVG的区别
浏览器乱码的原因是什么?如何解决?
渐进增强和优雅降级之间的区别
Unicode、UTF-8、UTF-16、UTF-32的区别
DOM, DOCUMENT, BOM, WINDOW 区别
css
垂直水平居中方法
三角形实现
什么是物理像素,逻辑像素和像素密度,为什么在移动端开发时需要用到@3x, @2x这种图片?
px、em、rem的区别及使用场景
flexible原理
高清屏实现真正1px
响应式页面实现方法
less和sass区别
box-sizing中border-box与content-box区别
css 的渲染层合成是什么?浏览器如何创建新的渲染层?
display的block、inline和inline-block的区别。行内元素、块级元素布局规则。css把行内元素变为块级元素的方法。清除浮动的方式和原理
元素的层叠顺序,position的属性有哪些,区别是什么,对 sticky 定位的理解
隐藏元素的方法。display:none与visibility:hidden的区别
transition 和 animation 的区别
css 优先级是怎么计算的?
position 有哪些值,作用分别是什么?
内联元素之间空白节点的成因和解决办法(幽灵空白节点)
单行、多行文本溢出隐藏
对Flex布局的理解及其使用场景
js
如何绑定事件?绑定同一元素的执行顺序。绑定层叠元素的执行顺序。冒泡与捕获区别。如何阻止冒泡?介绍事件委托,有什么好处?自定义事件实现。
js的数据类型。变量储存形式--堆栈理解。有了基本类型为什么还要包装类型?什么是装箱和拆箱?介绍隐式调用与隐式转换。
set/weakset/map/weakMap的区别
浏览器事件循环机制。宏任务与微任务的执行顺序。xhr回调/fetch/requestAnimationFrame属于什么任务?浏览器和node的事件循环区别。
setTimeout和setInterval回调中代码执行时间超过指定等待时间,会怎样?
setinterval回调执行时间略小于等待时间,会怎样?连续执行如何解决?
setTimeout和setInterval延时设为0,会怎样?
apply/call/bind区别
闭包的含义与作用。let与var区别。垃圾回收机制。闭包如何造成内存泄漏?内存泄漏监控与解决方法。
严格模式与普通模式区别
LocalStorage/SessionStorage/indexdb/Cookie/Session区别
getBoundingClientRect.top/scrollHeight/clientHeight区别
ES6比ES5有哪些新语法?
MutationObserver与IntersectionObserver区别
blob的使用场景。Blob与ArrayBuffer区别。base64编解码的方法
iframe使用场景。优缺点。复制页面通信方法。
介绍常见的设计模式。观察者模式与发布订阅模式区别。
HLS和DASH区别
FontBoosting的形成原因和解决方法
说一下 web worker
escape、encodeURI、encodeURIComponent 的区别
常见的DOM操作有哪些
ts
ts与js区别
ts的数据类型
interface与type区别
ts常用属性与作用
动画
矩阵等数学原理在动画中的作用,四元数与旋转的关系
三维场景需要的最基础的构成
canvas旋转
css动画属性关键字和用法
js动画和css动画优缺点以及适用场景
raf和其他达到60fps的方法
性能优化:节流、restore
怎样在移动端处理加载问题,渲染性能问题?
如何结合native能力优化性能?
如何排查性能问题。对chrome动画、3d、传感器调试
搭建过整套资源加载优化方案,能说明白整体方案的各个细节,包括前端、客户端、服务端分别需要实现哪些功能点、依赖哪些基础能力,以及如何配合。
设计并实现过前端动画引擎,能说明白一个复杂互动项目的技术架构,知道需要哪些核心模块,以及这些模块间如何配合。
有自己实现的动画相关技术方案产出,这套技术方案必须是解决明确的业务或技术难点问题的。为了业务快速落地而封装一个库,不算这里的技术方案。如果有类似社区方案,必须能从原理上说明白和竞品的差异,各自优劣,以及技术选型的原因。
场景
6x7的日历
数据双向绑定
图片懒加载
文件切片上传
大文件切片并行下载
长列表优化
活动倒计时
页面复制文字时自动加版权
微信扫码登录
找到当前页面出现次数最多的HTML标签
页面有哪些通信方式。B 页面正常关闭,如何通知 A 页面?B 页面意外崩溃,又该如何通知 A 页面
禁用外链
禁用控制台
实现刮刮卡
老虎机数字滚动实现
拖拽上传
SPA优化首屏加载时间
单点登录
判断元素是否到达可视区域
效率
代码规范与提交规范
单元测试与自动化测试
codeReview
自动部署与持续集成方案
项目脚手架搭建,及如何以工具形态共享。
数据埋点与错误监控方案。UV/PV/用户停留时间/首屏时间/白屏时间/可见哦户时间TTI统计。Navigator.sendBeacon和xhr哪个更好?
浏览器识别
npm依赖包版本号~和^的区别
介绍package.json常用字段
切换nodejs版本和npm镜像源
babel工作原理
CommonJS/AMD/UMD/ES6 Module区别
为什么:每个模块文件上存在 module,exports,require三个变量,然而这三个变量是没有被定义的,但是我们可以在 Commonjs 规范下每一个 js 模块上直接使用它们?
require大致流程。require如何避免重复加载?require如何避免循环引用?
为什么 exports={} 直接赋值一个对象就不可以呢?必须exports.xxx=***
既然有了 exports,为何又出了 module.exports ?
与 exports 相比,module.exports 有什么缺陷 ?
webpack 与 grunt、gulp 的不同
webpack中Loader 和 Plugin 的不同。有哪些常见的 Loader?有哪些常见的 Plugin?描述一下编写 loader 或 plugin 的思路
webpack运行原理
webpack 的构建流程
如何利用 webpack 来优化前端性能?Tree Shaking原理
项目依赖同一npm包的多版本,会有冲突吗?项目依赖了[email protected]版本。 然后我又引入了B,而B依赖[email protected]版本,这时候会产生冲突吗?
webpack热更新原理
vite与webpack的不同。vite运行和热更新原理
查看代码覆盖率
页面性能优化
Serverless理解
低代码理解
灰度发布
mock方案的通用性、场景覆盖度,以及代码或工程侵入程度。
git进行项目管理有哪些命令?
vue
常见的事件修饰符及其作用
v-if与v-show区别
自定义指令的使用和运行原理
vue各生命周期的作用与源码实现
vue双向数据绑定原理
vue与jquery区别
vue-router运行原理。 history 和 hash 两种路由方式的特点。Vue-router跳转和location.href有什么区别
路由懒加载原理
vue组件通信方法
vuex运行原理
style 中 scoped 的作用。深层选择器样式穿透编译原理。
method 与 computed 区别
vue-loader 原理。Vue模版编译原理。
data为什么是一个函数而不是对象?
子组件为什么不可以修改父组件传递的Prop?
v-model是如何实现双向绑定?v-model 可以被用在自定义组件上吗?如果可以,如何使用?
v-for为什么需要key属性?循环不用index为key?dom diff原理。对虚拟DOM的理解?为什么要用虚拟DOM?虚拟DOM的解析过程。
函数式组件与普通组件的区别
Vue3任意传送门Teleport原理
nextTick使用场景和原理
Vue.extend作用和原理
如何实现路由按需加载
如何进行权限管理
slot是什么?有什么作用?原理是什么?
对keep-alive的理解,它是如何实现的,具体缓存的是什么?
$nextTick 原理及作用
Vuex 用途
Vuex中action和mutation的区别
为什么 Vuex 的 mutation 中不能做异步操作?
Redux 和 Vuex 有什么区别
Vue3.0有什么更新?defineProperty和proxy的区别。vue3有什么新特性?diff上的优化
react
react数据绑定原理
setState为什么是异步的、什么时候是异步的?能不能同步,什么时候是同步的?调用 setState 之后发生了什么?
react组件通信
Redux主要解决什么问题?redux原理。redux 为什么要把 reducer 设计成纯函数?与vuex/Mobx的不同
Redux 中异步的请求怎么处理?
Redux 中间件是什么?接受几个参数?柯里化函数两端的参数具体是什么?
Redux 请求中间件如何处理并发?
Redux中的connect有什么作用?
fiber作用。渲染流程。diff算法。与vue比较
高阶组件理解
hook原理。Hooks 解决了哪些问题?
为什么"不要在循环,条件或嵌套函数中调用 Hook, 确保总是在你的 React 函数的最顶层调用他们"?
为什么 useState 要使用数组而不是对象?
useEffect 与 useLayoutEffect 的区别
immutable原理和使用场景。vue是否需要immutability?
React.Component 和 React.PureComponent 的区别
React.createClass和extends Component的区别
哪些方法会触发 React 重新渲染?重新渲染 render 会做些什么?
React声明组件有哪几种方法,有什么不同?对有状态组件和无状态组件的理解及使用场景。React中什么是受控组件和非控组件?
React中的props为什么是只读的?props改变时更新组件的有哪些方法?怎么检验props?验证props的目的是什么?
React 废弃了哪些生命周期?为什么?
React-Router的实现原理
Link 标签和 a 标签的区别
props.children和React.Children的区别
React的严格模式如何使用,有什么用处?
为什么 React 要用 JSX?React必须使用JSX吗?只用JavaScript是否可以?jsx到javascript的转换过程
angular
angular 双向数据绑定原理
rxjs 与 axios 区别
angular组件通信方法
组件和指令的区别
生命周期钩子与用途
Observable与Promise区别
ssr
服务器端渲染与单页面应用区别
vue-server-renderer实现原理
nuxt运行过程。nuxt请求到渲染过程。asyncData与fetch区别
nuxt路由生成策略
介绍nuxt缓存机制
nuxt优化
nuxt部署
nodejs
Express和Koa框架中间件有什么不同?compose函数实现原理
express中app.get、app.use、app.all的区别
express中response常用方法
nodejs垃圾回收gc机制。GC调优
deno和nodejs区别
node单线程对多核 CPU 使用不足的解决方法。spawn、exec、execFile、fork区别
Node模块机制。为什么每个模块都有__dirname,__filename 属性?exports.xxx=xxx 和 Module.exports={}有什么区别?
node调试方法
node性能检测
混合
uniapp/taro/hippy/RN/Flutter/Kotlin/原生对比
jsBridge是如何做到h5和原生应用的交互?MessageHandler 是什么?
iOS端uiwebview与wkwebview差异;webview资源加载优化方案;webview池管理方案;native路由
uniapp/微信小程序/spa/普通网页的区别
uniapp编译为微信小程序原理。相关文件类型差别
taro编译为微信小程序原理。
微信小程序应用/页面生命周期
bindtap/catchtap区别
rpx换算
页面通讯
性能优化
微前端应用场景与优缺点
为什么不使用iframe做微前端?
qiankun运行流程
沙箱区别:legacySandBox、proxySandBox、snapshotSandBox
qiankun通信方法。Action和Shared的优缺点
electron主进程和渲染进程通信方法。渲染进程之间通信方法
后端
消息队列场景与实现
数据库读写分离。为什么不直接全部用redis存储呢?同步策略
SQL分页
SQL索引原理
数据库查询优化与数据库性能优化
锁的应用场景。悲观锁、共享锁、排他锁、乐观锁、CAS与synchronized、分布式锁、锁降级
线程池作用/使用场景。线程池配置越多越好吗?线程池数量太小会怎样?CPU 密集型 与 I/O 密集型 区别
获取系统并发用户数
高并发处理中缓存、降级、限流技术
外部排序
GraphQL应用场景,与Mysql区别
10万条数据批量插入
智力
只有两个无刻度的水桶,一个可以装6L水,一个可以装5L水,如何在桶里装入3L的水。(本质就是利用两个水桶的已知容量倒来倒去,问题的解法并不唯一。)
25匹马,5个赛道,每次只能同时有5匹马跑,最少比赛几次选出最快的马?
1000瓶药水里面只有1瓶是有毒的,毒发时间为24个小时,问需要多少只老鼠才能在24小时后试出那瓶有毒。(需要老鼠的数量为log_2 1000)
烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?(要知道绳子可以从两头烧)
一共12个一样的小球, 其中只有一个重量与其它不一样(未知轻重),给你一个天平,找出那个不同重量的球?(采用分治的思想)
你有两个罐子,50个红色弹球,50个蓝色弹球,如何将这100个球放入到两个罐子,随机选出一个罐子取出的球为红球的概率最大?(1/0+49/50,1/2 * 1 + 1/2 * 49 /(49+50)=0.75)