GitHub | Timeline | Blog | Blog-SSG
勤学如春起之苗,不见其增,日有所长;
辍学如磨刀之石,不见其损,日有所亏。
如果觉得还不错,点个star
吧 😁
这是一个前端小白的学习历程,如果只学习而不记录点什么那基本就等于白学了。这个版本库的名字EveryDay
就是希望激励我能够每天学习,下面的文章就是从2020.02.25
开始积累的文章,都是参考众多文章归纳整理学习而写的,文章包括了HTML
基础、CSS
基础、JavaScript
基础与拓展、Browser
浏览器相关、Vue
使用与分析、React
使用与分析、Plugin
插件相关、Patterns
设计模式、Linux
命令、LeetCode
题解等类别,内容都是比较基础的,毕竟我也还是个小白,此外基本上每个示例都是本着能够即时运行为目标的,新建一个HTML
文件复制之后即可在浏览器运行或者直接可以在console
中运行。
如果想按照我写的文章顺序进行阅读的话可以 查看目录 ,另外如果想更条理地查看的话可以访问 我的博客,博客同时也是本版本库的gh-pages
分支,是作为纯静态页面搭建在Git Pages
上的,使用jsdelivr
以及cloudflare
作为缓存缓解国内访问速度问题。后期还在gh-pages-ssg
分支上部署了SSG
版本的 新版博客,并且借助ChatGPT
提供了英文翻译版本,分支是部署在Vercel
上来缓解国内访问速度问题。在博客中的内容就相对比较多了,除了学习笔记之外还有一些做项目时的记录以及遇到的坑等。HXDM
如果觉得还不错,点个star
吧,这个对我真的很重要。
- DOCTYPE
- HTML语义化
- Cookie与Session
- LocalStorage与SessionStorage
- Iframe框架及优缺点
- HTML节点操作
- 手动实现轮播图
- Canvas基础
- 前端性能优化方案
- HTML5新特性
- 行内元素和块级元素
- 图片等比例缩放方案
- 实现瀑布流布局
- 实现图片懒加载
- Web Worker
- 300ms点击延迟
- 默认行为及阻止
- 可替换元素和非替换元素
- HTML与XHTML区别
- 常见的兼容性问题
- Attribute和Property的区别
- 实现拼图滑动验证码
- 实现加载提示组件
- 实现消息提示组件
- DOM和BOM的区别
- 实现三栏布局
- Shadow DOM的理解
- Service Worker的应用
- 蒙层禁止页面滚动的方案
- SVG与foreignObject元素
- 布局垂直居中
- 伪类与伪元素
- CSS盒子模型
- CSS选择器
- CSS样式优先级
- Flex布局
- Grid布局
- Table布局
- SVG基础
- CSS引入方式
- CSS3新特性
- 响应式布局的实现
- 块级格式化上下文
- Position定位
- Float浮动
- 文本溢出截断省略
- CSS隐藏元素的方法
- 如何避免FOUC
- display的值及作用
- CSS常用单位
- 实现毛玻璃效果
- CSS实现图形效果
- 实现文字滚动播放
- CSS实现展开动画
- CSS实现渐隐渐现效果
- 手动实现AJAX
- ES6新特性
- 原型与原型链
- JavaScript闭包
- JS变量提升
- 匿名函数与自执行函数
- apply、call、bind
- 事件冒泡及阻止
- JS事件流模型
- 函数声明与函数表达式
- JS中this的指向
- new运算符
- Js遍历数组总结
- Promise对象
- async/await
- Generator函数
- Js中==与===
- JavaScript选择器
- Json Web Token
- Js模块化导入导出
- let与const
- 作用域与作用域链
- Js异步机制
- Js数组操作
- Js继承的实现方式
- Function与Object
- Js严格模式
- Js箭头函数
- 手动实现apply call bind
- Js遍历对象总结
- Js获取数据类型
- 手动实现Promise
- Js实现数组排序
- defineProperty
- Js实现链表操作
- getter与setter
- Js中的堆栈
- 防抖与节流
- Js的GC机制
- 实现浅拷贝与深拷贝
- Map与WeakMap
- Set与WeakSet
- Object对象
- Js捕获异常的方法
- Js中fetch方法
- XML和JSON的比较
- Js文件异步加载
- 深入理解Js数组
- 模板语法的简单实现
- Thunk函数的使用
- async/await剖析
- null和undefined的区别
- Js创建对象的方式
- Js中RegExp对象
- Js中String对象
- Js中Number对象
- Js中Math对象
- Js中数组空位问题
- Js中Array对象
- Js中Currying的应用
- Js中Date对象
- Js中Symbol对象
- valueOf与toString
- Js模块化开发的理解
- 常见的内存泄漏场景
- Js中Proxy对象
- Js中Reflect对象
- Js中的逻辑运算符
- Js将字符串转数字的方式
- 函数式编程的理解
- Js实用小技巧
- 深入理解Js中的this
- Js中的位操作符
- 跨域问题与解决方案
- XSS跨站脚本攻击
- CSRF跨站请求伪造
- SQL注入攻击
- 浏览器渲染与内核
- 浏览器重绘与回流
- HTTP协议概述
- CSS劫持攻击
- HTTPS加密传输过程
- 对称加密与非对称加密
- 分布式SESSION一致性
- TCP三次握手
- TCP与UDP异同
- 浏览器事件
- 浏览器页面呈现过程
- RESTful架构与RPC架构
- HTTP协议发展历程
- 微信小程序实现原理
- Window对象
- OSI七层模型
- 浏览器窗口间通信
- OAUTH开放授权
- SSO单点登录
- DNS解析过程
- 强缓存与协商缓存
- GET和POST的区别
- CDN缓存的理解
- domReady的理解
- Document对象
- Location对象
- SSRF服务器端请求伪造
- 浏览器本地存储方案
- Node对象
- History对象
- Navigator对象
- Element对象
- HTMLElement对象
- Event对象
- IntersectionObserver对象
- MutationObserver对象
- Vue生命周期
- Vue中key的作用
- Vue数据双向绑定
- data为何以函数形式返回
- Vue中$nextTick的理解
- MVVM模式的理解
- v-if与v-show的区别
- Vue中$refs的理解
- Vue中虚拟DOM的理解
- Vue中diff算法的理解
- $router和$route的区别
- 对keep-alive组件的理解
- SPA单页应用的优缺点
- Vue事件绑定原理
- Vue中数组变动监听
- Vue父子组件生命周期
- Vue中computed分析
- Vue路由Hash模式分析
- Vue路由History模式分析
- v-model数据绑定分析
- Vue路由懒加载
- VueRouter导航守卫
- 服务端渲染SSR的理解
- Vue常用性能优化
- Vuex和普通全局对象
- Vuex中的核心方法
- Vue中组件间通信的方式
- Vue3.0新特性
- Vue为何采用异步渲染
- Vue中的三种Watcher
- v-html可能导致的问题
- Vue首屏性能优化组件
- React生命周期
- React虚拟DOM的理解
- React中JSX的理解
- React组件的state和props
- 有状态和无状态组件
- 受控组件和非受控组件
- React中的纯组件
- React中的高阶组件
- React中refs的理解
- React中的合成事件
- ReactRouter的实现
- React中组件间通信的方式
- React组件复用的方式
- React中diff算法的理解
- Hooks中的useState
- useEffect与useLayoutEffect
- useMemo与useCallback
- setState同步异步场景
- 手写useState与useEffect
- Mobx与Redux的异同
- Context与Reducer
- Hooks与普通函数的区别
- Hooks与事件绑定
- React闭包陷阱
- ReactPortals传送门
- 基于React的SSG渲染方案
- Git常用命令
- Git与SVN对比
- Nginx常用配置
- Rollup的基本使用
- Jest中Mock网络请求
- 初探webpack之编写plugin
- 初探webpack之从零搭建Vue开发环境
- TS内置类型与拓展
- 初探webpack之编写loader
- 竞态问题与RxJs
- 基于slate构建文档编辑器
- 基于NoCode构建简历编辑器
- 初探富文本之富文本概述
- 初探富文本之编辑器引擎
- 初探富文本之OT协同算法
- 初探富文本之OT协同实例
- 初探富文本之CRDT协同算法
- 初探富文本之CRDT协同实例
- 基于drawio构建流程图编辑器
- 从零实现的Chrome扩展
- 初探富文本之React实时预览
- 从零实现的浏览器Web脚本
- 初探webpack之单应用多端构建
- 基于WebRTC的局域网文件传输
- 初探富文本之文档diff算法
- 初探富文本之在线文档交付
- 初探富文本之划词评论能力
- 初探富文本之文档虚拟滚动
- 基于Chrome扩展的浏览器事件
- 初探webpack之解析器resolver
- 基于ServiceWorker的文件传输方案
- 初探富文本之搜索替换算法
- 简单工厂模式
- 工厂方法模式
- 抽象工厂模式
- 建造者模式
- 原型模式
- 单例模式
- 外观模式
- 适配器模式
- 代理模式
- 装饰器模式
- 桥接模式
- 组合模式
- 享元模式
- 模板方法模式
- 观察者模式
- 状态模式
- 策略模式
- 责任链模式
- 命令模式
- 访问者模式
- 中介者模式
- 备忘录模式
- 迭代器模式
- 解释器模式
- 链模式
- 委托模式
- 数据访问对象模式
- 防抖节流模式
- 简单模板模式
- 惰性模式
- 参与者模式
- 等待者模式
- 同步模块模式
- 异步模块模式
- Widget模式
- MVC模式
- MVVM模式
- cat命令
- chmod命令
- chown命令
- cmp命令
- diff命令
- diffstat命令
- file命令
- find命令
- cut命令
- ln命令
- less命令
- locate命令
- lsattr命令
- chattr命令
- mc命令
- mktemp命令
- more命令
- mv命令
- od命令
- paste命令
- patch命令
- rcp命令
- rm命令
- split命令
- tee命令
- tmpwatch命令
- touch命令
- umask命令
- which命令
- cp命令
- whereis命令
- scp命令
- awk命令
- read命令
- updatedb命令
- col命令
- colrm命令
- comm命令
- csplit命令
- ed命令
- egrep命令
- ex命令
- fgrep命令
- fmt命令
- fold命令
- grep命令
- aspell命令
- join命令
- look命令
- pico命令
- sed命令
- sort命令
- tr命令
- expr命令
- ps命令
- netstat命令
- ifconfig命令
- traceroute命令
- route命令
- kill命令
- systemctl命令
- journalctl命令
- ip命令
- curl命令
- top命令
- 全排列
- 括号生成
- 二进制求和
- 顶端迭代器
- 矩阵置零
- 栈排序
- 长度最小的子数组
- 字母移位
- 跳水板
- 路径总和
- 两个数组的交集II
- 全排列II
- 插入、删除和获取元素
- 最长公共前缀
- 除数博弈
- 环形数组循环
- 字符串相加
- 有效的括号字符串
- 一次编辑
- 被围绕的区域
- 数组中的第K个最大元素
- 提莫攻击
- 叶子相似的树
- 二叉树的最小深度
- 平衡二叉树
- 电话号码的字母组合
- 使括号有效的最少添加
- 二叉树的所有路径
- 二叉树的层次遍历 II
- 组合
- 翻转二叉树
- 子集
- 二叉搜索树中的众数
- 宝石与石头
- 反转字符串
- 两两交换链表中的节点
- 长按键入
- 独一无二的出现次数
- 两个数组的交集
- 子集II
- 最接近原点的K个点
- 按奇偶排序数组II
- 根据身高重建队列
- 供暖器
- 上升下降字符串
- 保持城市天际线
- 不同路径
- Dota2参议院
- 单调递增的数字
- 买卖股票的最佳时机含手续费
- 字符串中的第一个唯一字符
- 最后一块石头的重量
- 种花问题
- 滑动窗口最大值
- 汇总区间
- 替换后的最长重复字符