自动化测试
JS 垃圾回收机制
实现图片的懒加载
图片的懒加载原理: 当图片元素出现在屏幕中时,才给图片的 src 赋值对应的链接,去加载对应的图片
git
merge vs rebase
在 Git 中,Merge 和 Rebase 是两种常见的分支合并策略,它们分别用于将一个分支的更改合并到另一个分支上,但它们的工作方式和影响略有不同。
Merge(合并)
Merge 操作将两个分支的历史合并为一个新的合并提交。这个合并提交有两个父提交,分别代表了合并前的两个分支。Merge 操作会保留原始分支的历史记录,因此在分支图中会形成一个新的合并节点。
特点
保留分支历史:Merge 操作会保留原始分支的完整历史记录,包括合并提交。这使得分支的历史记录更加清晰可见。
生成合并提交:Merge 操作会生成一个新的合并提交,该提交包含了合并前的两个分支的更改。
保留分支结构:Merge 操作会保留分支的结构,不会改变提交的顺序或线性性。
Rebase(变基)
Rebase 操作是将当前分支的提交重新应用到另一个分支上。它会将当前分支的提交逐个应用到目标分支的最新提交上,并在此过程中解决可能出现的冲突。Rebase 操作会改变提交的顺序和历史,使得合并后的提交历史更加线性化。
特点
线性化提交历史:Rebase 操作会将当前分支的提交逐个应用到目标分支的最新提交上,从而使得提交历史更加线性化。
不产生合并提交:与 Merge 不同,Rebase 不会生成新的合并提交,而是将当前分支的提交直接放置在目标分支的顶部。
改变提交的哈希值:由于 Rebase 改变了提交的历史,因此会改变提交的哈希值。因此,不建议对已发布的提交进行 Rebase 操作。
总结
Merge
适用于合并两个独立开发的分支,而 Rebase
则适用于保持提交历史的线性化。
revert vs reset
revert
git revert 命令用于撤销之前的提交,但是通过创建一个新的提交来实现。新的提交包含了撤销了原来提交的更改。使用 revert 命令可以在撤销提交的同时保留提交历史,不会改变历史记录。
reset
git reset
命令用于将 HEAD 指针移动到另一个提交,并且可以选择保留或丢弃修改。reset 命令有三种模式:--soft
、--mixed
和 --hard
。
--soft
模式:仅移动 HEAD 指针,不会修改暂存区和工作目录的内容。--mixed
模式(默认模式):移动 HEAD 指针,并且重置暂存区,但是不会修改工作目录的内容。--hard
模式:移动 HEAD 指针,并且重置暂存区和工作目录的内容,将其回退到指定提交的状态。
1 | git reset --soft <commit> |
三次握手和四次挥手
三次握手(Three-Way Handshake)和四次挥手(Four-Way Handshake)是 TCP(Transmission Control Protocol,传输控制协议)连接建立和断开的过程。
回流和重绘
回流必将引起重绘,重绘不一定会引起回流。
原型和原型链
React 组件的编写
在编写 React 组件时,有一些最佳实践需要遵循:
Cookie、sessionStorage、localStorage 的区别
cookie、sessionStorage 和 localStorage 都是在 Web 浏览器中用于存储数据的机制,但它们之间有一些重要的区别。