首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >前端定期小复盘, 每期都有小收获(二)

前端定期小复盘, 每期都有小收获(二)

作者头像
徐小夕
发布2022-02-09 14:20:46
发布2022-02-09 14:20:46
5670
举报
文章被收录于专栏:趣谈前端趣谈前端

hi, 大家好, 我是徐小夕, 我想任何一名工程师都有我现在的焦虑:

  • 工作学到了新知识, 解决了新问题不知道如何总结, 复盘
  • 工作下班后想学习提升却不知道该学习什么
  • 知道该学习什么但是又控制不住手机的诱惑
  • 学习坚持了一段时间就不了了知了

最终一年到头, 我还是那个我, 一层不变的 “烟火”.

所以为了让自己, 也让大家有个持续的提升, 我会定期总结复盘一些自己工作, 学习中遇到的问题, 并给出自己的解答, 最终以文章的形式分享出来, 让大家少走弯路, 每周都能学到新知识.

每篇文章内容不会太多, 会总结3-6个常见问题及解答, 阅读时间控制在3-10分钟, 作为每个周期成长的见证.

今天是我们的第二次复盘, 主要复盘如下:

  • git代码管理的使用技巧
  • git hooks 如何在项目中优雅的使用
  • js操作符“~” 以及 “|” 的用法
  • 事件委托的优缺点
  • ts抱错问题分析(assignment to property of function parameter)

1. git代码管理的使用技巧

这里整理几个基础的git操作:

  • 基于当前分支创建新分支
代码语言:javascript
复制
git checkout -b newBranchName
  • 基于远程分支创建新分支(如果想更好的跟踪, 最好本地和远程分支名一致)
代码语言:javascript
复制
git checkout -b newBranchName origin/remoteBranchName
  • 创建一个基于远程分支的本地分支并自动跟踪远程分支
代码语言:javascript
复制
git checkout --track origin/remoteBranchName
  • 删除本地分支
代码语言:javascript
复制
git branch -d localBranch
  • 删除远程分支
代码语言:javascript
复制
git push origin -d remote_branch_name
  • 合并本地提交信息
代码语言:javascript
复制
git rebase -i commitId(需要合并提交信息的前一个commitid)

2. git hooks 如何在项目中优雅的使用

git hooks 主要提供了很多在提交前的处理钩子, 比如我们可以在提交之前进行代码格式校验(pretty, eslint), 对提交信息进行验证(commit-msg), 具体可以参考我总结的lerna最佳实践(https://github.com/MrXujiang/best-cps)

git hooks完成的hooks介绍和说明可以参考:

https://githooks.com/

3. js操作符 “~” “~~” 以及 “|” 的用法

按位非运算符(~),简单的理解就是改变运算数的符号并减去1,当然,这是只是简单的理解能转换成number类型的数据;比如 ~9 == -10 ; ~~ 9 == 9;

那么,对于typeof var!==”number”的类型来说,进行运算时,会尝试转化成32位整形数据,如果无法转换成整形数据,就转换为NaN;

可以将~~视为parseInt的简写。并且使用按位或 “|”操作符也可以得到相同的结果

4. 事件委托的优缺点

  • 优点:
    • 减少事件注册,节省内存。
    • 简化了dom节点更新时,相应事件的更新。
  • 缺点:
    • 事件委托基于冒泡,对于不冒泡的事件不支持。
    • 层级过多,冒泡过程中,可能会被某层阻止掉。
    • 理论上委托会导致浏览器频繁调用处理函数,所以建议就近委托
    • 把所有事件都用代理就可能会出现事件误判。比如,在document中代理了所有buttonclick事件,另外的人在引用改js时,可能不知道,造成单击button触发了两个click事件。

5. ts抱错问题分析(assignment to property of function parameter)

这个 ts 抱错的意思是指不要直接修改函数的入参。因为假如入参是一个对象,修改入参可能会导致对象的属性被覆盖。所以我们可以将入参进行copy, 修改新对象. 如下:

代码语言:javascript
复制
const func = (obj) => {
  const _obj = {...obj};
  _obj.children = ['h5-dooring']
  rerurn _obj
}

这样就不会抱错啦~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 趣谈前端 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. git代码管理的使用技巧
  • 2. git hooks 如何在项目中优雅的使用
  • 3. js操作符 “~” “~~” 以及 “|” 的用法
  • 4. 事件委托的优缺点
  • 5. ts抱错问题分析(assignment to property of function parameter)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档