包含HTTP、JS、HTML、CSS常见面试题集锦,每天进步亿点点。
- 浏览器工作原理详解
- 浏览器缓存放在哪里
- HTTP缓存🍬🍬
- HTTP报文
- HTTP状态码
- HTTP协议的请求方法🍬🍬
- HTTP协议与HTTPS协议🍬
- HTTP连接优化
- HTTP协议演化
- 从输入url到页面加载完成发生了什么?🍬🍬
- Cookie详解
- GET与POST比较
- TCP协议🍬
- DNS相关
- 浏览器关闭后,session会销毁吗?
- 什么是MVVM
- 数据双向绑定之响应式原理🍬🍬🍬🍬🍬
- 变化侦测API之$set实现原理
- 变化侦测API之$watch实现原理
- 变化侦测API之$delete实现原理
- Vue渲染过程
- Vue虚拟DOM
- Vue中的异步更新队列
- $nextTick的作用及原理🍬
- computed实现原理+与watch的区别🍬🍬
- 为列表渲染设置key属性的原因
- Vue中的事件机制$on/$off/$once/$emit🍬🍬
- v-show和v-if指令的区别
- v-if和v-for指令为什么不建议同时使用
- Vue组件化——全局组件和局部组件
- Vue组件间数据传递
- Vue的内置全局组件
- Vue中的生命周期🍬
- 初始化实例属性
- 初始化事件
- Vue中的provide和inject
- Vue中状态的初始化(props/methods/data/computed/watch)
- Vue3.x对比Vue2.x
- Vue-router学习笔记
- Vue中的路由模式🍬
- Vue中的路由守卫
- Vue中$route和$router的区别
- Vue中class和style如何动态绑定
- 怎样理解Vue的单向数据流
- Vue的mixin混入
- Vue过滤器filter的使用
- Vuex学习笔记🍬
- Nuxt.js应用框架的使用
- 如何监听路由变化及SPA实现原理
- Vue中的插件plugin
- Vue中的插槽slot
- 各种排序算法🍬
- 数组中的map方法和reduce方法
- promise.all和promise.race
- 实现sleep()方法
- 手写深拷贝
- 手写new方法
- 手写call、apply和bind方法
- 手写instanceof
- 手写函数柯里化🍬🍬
- 数组扁平化🍬🍬
- JS异步加载脚本的方式🍬
- 函数声明与函数表达式
- 闭包🍬🍬
- 防抖和节流
- 用setTimeout实现setInterval
- JS实现一个准确的计时器
- 继承的实现方式及比较
- 原型链
- JS中的数据类型及如何判断🍬
- JS中声明变量的六种方式
- bind、call和apply
- 深拷贝和浅拷贝
- Promise详解🍬🍬
- JS中的数组详解🍬🍬
- JS中的日期对象Date详解
- JS设计模式
- JS事件相关-事件冒泡/事件捕获/事件委托🍬
- event.currentTarget与event.target的区别
- 类数组与数组的区别和转换
- 如何正确判断this
- Ajax的请求过程
- Axios学习笔记
- new和Object.create的区别
- 跨域实现方式及原理🍬🍬
- async和await🍬
- DOM操作
- 大文件分片上传+断点续传
- ES6新增特性🍬
- V8中的垃圾回收🍬
- 执行环境及作用域
- JS运行机制
- 执行上下文详解(搬运)
- 深入变量对象(搬运)
- 不用var声明和用var声明的区别
- 为什么try..catch无法捕获promise中的错误
- JS数组中哪些遍历方法可以使用await
- Promise.all如何保存所有promise状态
- 用CSS画一个三角形、圆形、半圆
- link与@import的区别
- 行内元素和块级元素🍬
- 盒子模型🍬🍬
- position的取值+定位🍬🍬
- display的取值🍬
- 浮动清除
- 说说对BFC规范的理解
- 水平垂直居中🍬
- 隐藏元素的方法
- px、rem和em的区别
- 伪类和伪元素🍬
- 选择符🍬🍬
- CSS3新增特性🍬
- 如何实现两栏布局右侧自适应,三栏布局中间自适应🍬🍬
- Grid网格布局
- flexbox弹性盒子布局
- 回流和重绘🍬
- z-index详谈
- css的引入方式及优先级🍬
- 如何减少渲染时间,改善web性能?
- opacity、transparent以及rgba的区别
- css动画:transition和animation