设计模式
设计模式设计模式简介通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的 前端常用设计模式工厂模式一种创建对象的方式,使得创建对象的过程与使用对象的过程分离。在前端,常用于动态创建组件,比如创建相似样式和行为的按钮(比如antd中的按钮) 我们来模拟一下创建antd的按钮的工厂 首先,我们先定义一个接口,表示:按钮需要有点击事件和不同的样式,然后每个按钮类都去实现这个接口 123456789101112131415161718192021222324252627282930313233343536373839404142434445//模拟按钮的行为与行为interface Button { // 点击事件 onClick(): void; // 渲染不同的样式 render(): void;}// 这个Primary按钮class PrimaryButton implements Button { render()...
前端基础知识
Object.is() 和 “”==”” 的区别 双等号(==):如果两边类型相同,则会进行严格比较;如果类型不同,进行类型转换,再进行比较。如null和undefined相等、布尔转数字、字符串转数字、对象转原始。 Object.is():类型不同,返回false;类型相同,进行比较。其中,-0和+0不等,NaN和NaN相等。 0.1+0.2为什么不等于0.3,原理是什么? 在JavaScript中,小数的计算会先将小数转换为二进制数,再进行计算。由于0.1和0.2不能准确转换为有限的二进制数,所以会有精度损失,导致这两个数的相加不等于准确值。 小数转换为二进制数 整数部分的转换方法已掌握。 小数部分:将小数乘以2,记录整数部分,将小数部分继续乘以2,直到小数部分为0,将整数正序排列。 typeof能区分数组和对象吗?判断数组的方法有哪些? typeof不能区分出数组和对象,因为得到的值都为’object’。 判断数组的方法:使用Object.prototype.toString(结果为[object...
git常用指令
基础配置123# 设置全局用户名/邮箱(首次使用必须)git config --global user.name "Your Name"git config --global user.email "your@email.com" 仓库操作12345# 克隆仓库git clone <仓库名># 初始化操作git init 提交修改1234567891011121314# 查看当前文件状态git status# 单文件添加到暂存区git add <文件名># 暂存所有文件git add .# 提交暂存区内容并添加描述git commit -m "描述"# 修改最近一次提交的描述(没有push时)git commit --amend 分支管理1234567891011121314151617181920# 查看本地分支git branch# 查看所有分支(包括远程)git branch -a# 创建新分支git branch <分支名># 切换分支git checkout...