EveryDay icon indicating copy to clipboard operation
EveryDay copied to clipboard

前端基础 个人博客 学习笔记

EveryDay

如果觉得不错,点个star吧 😃

这是一个前端小白的学习历程,如果只学习而不记录点什么那基本就等于白学了。这个版本库的名字EveryDay就是希望激励我能够每天学习,下面的文章就是从2020.02.25开始积累的文章,都是参考众多文章归纳整理学习而写的,文章包括了HTML基础、CSS基础、JavaScript基础与拓展、Browser浏览器相关、Vue使用与分析、React使用与分析、Plugin插件相关、Patterns设计模式、Linux命令、LeetCode题解等类别,内容都是比较基础的,毕竟我也还是个小白,此外基本上每个示例都是本着能够即时运行为目标的,新建一个html文件复制之后即可在浏览器运行或者直接可以在console中运行。如果想按照我写的顺序进行阅读的话可以 查看目录 ,另外如果想更条理地查看的话可以访问 我的博客,博客同时也是本版本库的gh-pages分支,是作为纯静态页面搭建在Git Pages上的,使用jsdelivr以及cloudflare作为缓存缓解国内访问速度问题,在博客中的内容就相对比较多了,除了学习笔记之外还有一些做项目时的记录以及遇到的坑等。HXDM如果觉得不错,点个star吧,这个对我真的很重要。

HTML

  • DOCTYPE
  • HTML语义化
  • Cookie与Session
  • LocalStorage与SessionStorage
  • Iframe框架及优缺点
  • HTML节点操作
  • 手动实现轮播图
  • Canvas基础
  • 前端性能优化方案
  • HTML5新特性
  • 行内元素和块级元素
  • 图片等比例缩放方案
  • 实现瀑布流布局
  • 实现图片懒加载
  • Web Worker
  • 300ms点击延迟
  • 默认行为及阻止
  • 可替换元素和非替换元素
  • HTML与XHTML区别
  • 常见的兼容性问题
  • Attribute和Property的区别
  • 实现拼图滑动验证码
  • 实现加载提示组件
  • 实现消息提示组件
  • DOM和BOM的区别
  • 实现三栏布局
  • Shadow DOM的理解
  • Service Worker的应用
  • 蒙层禁止页面滚动的方案

CSS

  • 布局垂直居中
  • 伪类与伪元素
  • CSS盒子模型
  • CSS选择器
  • CSS样式优先级
  • Flex布局
  • Grid布局
  • Table布局
  • SVG基础
  • CSS引入方式
  • CSS3新特性
  • 响应式布局的实现
  • 块级格式化上下文
  • Position定位
  • Float浮动
  • 文本溢出截断省略
  • CSS隐藏元素的方法
  • 如何避免FOUC
  • display的值及作用
  • CSS常用单位
  • 实现毛玻璃效果
  • CSS实现图形效果
  • 实现文字滚动播放
  • CSS实现展开动画
  • CSS实现渐隐渐现效果

JavaScript

  • 手动实现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中的位操作符

Browser

  • 跨域问题与解决方案
  • 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生命周期
  • 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生命周期
  • 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的异同

Plugin

  • Git常用命令
  • Git与SVN对比
  • Nginx常用配置
  • Rollup的基本使用
  • Jest中Mock网络请求
  • 初探webpack之编写plugin
  • 初探webpack之从零搭建Vue开发环境
  • TS内置类型与拓展
  • 初探webpack之编写loader
  • 竞态问题与RxJs
  • 基于slate构建文档编辑器
  • 基于NoCode构建简历编辑器

Patterns

  • 简单工厂模式
  • 工厂方法模式
  • 抽象工厂模式
  • 建造者模式
  • 原型模式
  • 单例模式
  • 外观模式
  • 适配器模式
  • 代理模式
  • 装饰器模式
  • 桥接模式
  • 组合模式
  • 享元模式
  • 模板方法模式
  • 观察者模式
  • 状态模式
  • 策略模式
  • 责任链模式
  • 命令模式
  • 访问者模式
  • 中介者模式
  • 备忘录模式
  • 迭代器模式
  • 解释器模式
  • 链模式
  • 委托模式
  • 数据访问对象模式
  • 防抖节流模式
  • 简单模板模式
  • 惰性模式
  • 参与者模式
  • 等待者模式
  • 同步模块模式
  • 异步模块模式
  • Widget模式
  • MVC模式
  • MVVM模式

Linux

  • 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命令

LeetCode

  • 全排列
  • 括号生成
  • 二进制求和
  • 顶端迭代器
  • 矩阵置零
  • 栈排序
  • 长度最小的子数组
  • 字母移位
  • 跳水板
  • 路径总和
  • 两个数组的交集II
  • 全排列II
  • 插入、删除和获取元素
  • 最长公共前缀
  • 除数博弈
  • 环形数组循环
  • 字符串相加
  • 有效的括号字符串
  • 一次编辑
  • 被围绕的区域
  • 数组中的第K个最大元素
  • 提莫攻击
  • 叶子相似的树
  • 二叉树的最小深度
  • 平衡二叉树
  • 电话号码的字母组合
  • 使括号有效的最少添加
  • 二叉树的所有路径
  • 二叉树的层次遍历 II
  • 组合
  • 翻转二叉树
  • 子集
  • 二叉搜索树中的众数
  • 宝石与石头
  • 反转字符串
  • 两两交换链表中的节点
  • 长按键入
  • 独一无二的出现次数
  • 两个数组的交集
  • 子集II
  • 最接近原点的K个点
  • 按奇偶排序数组II
  • 根据身高重建队列
  • 供暖器
  • 上升下降字符串
  • 保持城市天际线
  • 不同路径
  • Dota2参议院
  • 单调递增的数字
  • 买卖股票的最佳时机含手续费
  • 字符串中的第一个唯一字符
  • 最后一块石头的重量
  • 种花问题
  • 滑动窗口最大值
  • 汇总区间
  • 替换后的最长重复字符