这不仅是一个技术博客,也会涉及到文学或者其他方向的东西,偶尔也会写生活(正经人谁写日记啊
):smirk:
笔者在学习过程中,有一段时间不知道该如何深入下去,活能干,就是不知道该学啥该怎么学,比较迷茫不知所措。相信这个问题有很多读者朋友也遇到过。 所以笔者想从基础开始整理出一条路线,在整理的过程中把好的资料分享给跟我碰到过一样问题的读者朋友。笔者坚信:慢慢来、会很快
希望所有人都能被温柔以待~
- ES6新的特性
- 本地对象、内置对象、宿主对象
- var、let、const三者区别
- 纯函数、函数式编程、柯里化
- 值的不可变性
- ES6中的装饰器Decorator
- ES6的解构赋值
- 可迭代对象
- String() 与 new String() 的差异
- 内存空间
- 4类常见内存泄漏及如何避免
- 事件循环
- 类型转换
- 数组
- Object
- 作用域、作用域链、预编译、执行上下文、闭包
- this指向
- 原型、原型链、继承
- 面向对象编程特点、js实现面向对象(封装、继承、多态)、重载(不属于面向对象)
- Promise和async / await
- 模块化
- 事件代理机制
- 懒加载
- 代理拦截
- 二进制
- 存储
- 防抖和节流
- 同源策略以及实现跨域的方式
- 跨页面通信
- 自定义事件
- 立即执行函数(IIFE),执行完释放内存
- 应用
- HTML5
<head>
标签 - HTML5新增了哪些特性?
- 对HTML5语义化的理解
- preload、prefetch、preconnect 和 dns-prefetch区别
- meta、link之预加载图片、文件
- SPA单页面优缺点及SPA首屏加载速度慢解决办法
- HTML meta标签
- disabled和readonly的区别
- css3的新特性
- CSS变量 var()
- 超过行数的文本用省略号替代
- px、em、rem、vh、vw区别
- 画0.5px的线
- 设备像素、css像素、设备独立像素、dpr、ppi 之间的区别
- :first-child / :last-child、:first-of-type / :last-of-type、:nth-child(n) / :nth-last-child(n)的区别
- 盒模型
- 样式的继承性和权重计算
- 修改element-ui组件默认样式
- line-height详解
- display、visibility、opacity、position隐藏元素的区别
- position的四个属性值:relative(不脱流)、fixed、absolute、sticky
- 行内元素、块级元素
- 响应式
- 元素居中
- 性能优化
- 动画
- 预处理器
- OSI七层模型及其每层有哪些协议
- 如何理解TCP/IP协议?
- DNS协议是什么?说说DNS完整的查询过程?
- DNS劫持如何避免和解决?
- 如何理解CDN?说说实现原理?
- 三次握手、四次挥手及其涉及的相关问题
- TCP、UDP的区别,TCP如何实现可靠传输,UDP如何改进实现可靠传输
- TCP长连接、短连接(心跳检测)
- HTTP/0.9、HTTP/1.0、HTTP/1.1、HTTP/2、HTTP/3、websocket之间的区别,HTTP 和 HTTPS 的区别
- 从输入 URL 到页面加载完成的过程中都发生了什么事情?
- 一个TCP连接可以发送多少个HTTP请求?
- HTTP的KeepAlive是开启还是关闭?
- content-type的类型、form-data如何传对象
- Request、Response
- 跨域
- 异步请求方式
- 缓存
- HTTPS
- 架构
- 渲染
- 浏览器安全
- 垃圾回收
- 线程池及使用场景
- 阻塞队列(BlockingQueue)的应用(生产者消费者 & 线程池)
- 线程安全之集合类(List、Map、Set),同步容器(Vector、Collections.synchronized)、并发容器(JUC)
- 锁
- 线程通信方式(volatile、synchronized、JUC工具类 CountDownLatch)
- MVC、MVP、MVVM的区别
- v-if和v-show的区别
- watch、computed区别及属性的监听
- Vue过滤器
- diff与key
- keep-alive缓存后怎么更新
- 为什么避免 v-if 和 v-for 一起用
- Vue生命周期;父子组件、兄弟组件、宏mixins组件生命周期
- 为什么data属性是一个函数而不是一个对象?
- 动态给vue的data添加一个新的属性时界面不刷新?怎样解决?
- Vue的SEO优化方案
- Vue 组件为何采用异步渲染-nextTick的实现原理
- vue 播放器插件vue-video-player踩坑
- 双向绑定原理
- router
- 按需加载:vue异步组件require()、es6的import()(可进行chunk分包)
- Vue 自定义指令Vue.directive
- Vue 动态绑定样式的方式
- 公共组件
- Vue3.0
- Vuex
- Node.js 架构
- Webpack配置Node环境变量
- 压缩和混淆node.js服务端代码
- 说说对 Buffer 的理解、应用场景
- Blob、ArrayBuffer和Buffer区别
- 说说对 Stream 的理解、应用场景
- Buffer和Stream区别
- 说说EventEmitter? 如何实现一个EventEmitter?
- Node 定时器、Event Loop详解
- 说说 Node 文件查找的优先级以及 require 方法的文件查找策略?
- Nodejs 大文件分片上传
- 设计一个分页功能,前后端如何交互?
- PM2自动重启、负载均衡、日志输出
- Node.js 与 log4js日志分级(TRACE、DEBUG、INFO、WARN、ERROR)
- 使用pkg将Node.js文件打包成exe文件
- Koa
- 消息队列
- Webpack整体大纲
- webpack的构建流程
- webpack proxy工作原理?为什么能解决跨域?
- Loader
- 如何保证各个loader按照预想方式工作?
- source map是什么?生产环境怎么用?
- 文件指纹策略
- 文件监听原理
- Webpack 的热更新原理
- 如何对bundle体积进行监控和分析?
- Chunk
- 性能优化
- npm
- 脚手架
- Redis概述
- Redis、Memcache、MongoDB区别
- 缓存穿透、缓存击穿、缓存雪崩
- 八种数据类型:String、Bitmap、Hyperloglog、List、Set、Zset有序集合、Hash、Geospatial地理位置
- 用 Bitmap 实现亿级数据统计
- 模拟验证码发送
- Redis事务、乐观锁、悲观锁
- Redis配置文件详解
- Redis订阅发布
- 持久化之RDB操作、AOF操作
- 多线程、阻塞、非阻塞
- 秒杀系统
- 集群
- 分布式锁
- 秒杀案例
- Redis经典面试题
- 分布式系统的8个谬误
- monitor,用于收集页面的用户点击行为、路由跳转、接口报错、代码报错、并上报服务端
- 如何进行 web 性能监控?
- 美团可视化埋点方案
- Swagger API规范
- 前端代码上传到阿里云服务器上(OSS)并访问
- OSS 和 CDN 配合使用加速
- 如何保证发布后 CDN 代码是最新的?如何预热?
- Google Analytics跨域跟踪用户数据
- 时间复杂度分析方法、时间和空间复杂度分析案例
- 快速排序、堆排序、二路归并排序、插入排序
- 快速幂
- 大数加法
- 最长回文子串
- Map + 指针
- 二分法
- 栈
- 二叉树
- 回溯
- DFS
- 图论