编辑的撤销重做算法

// 定义撤销和重做命令的基类 class Command { execute() {} undo() {} redo() {} } // 示例命令类 class ChangeTextCommand extends Command { constructor(receiver, newText) { super() this.receiver = receiver this.newText = newText this.oldText = receiver.text

JS数据类型分类和判断

在前端笔试面试中“JS数据类型的分类和判断”是高频的基础考点,今天总结一下,对正在准备找工作的小伙伴应该有所帮助~ JavaScript中有6种数据类型:数字(number)、字符串(string)、布尔值(boolean)、undefined、null、对象(Object)。其中对象类型包括:数组(Array)、函数(Function)、还有两个特殊的对象:正则(RegExp)和日期(

彻底搞懂Object和Function的关系

Object和Function的关系其实属于原型链的知识范畴,如果对于原型链、原型继承还不熟悉的话,可以戳这边 Object、Function和其它对象的关系可以归纳为下面四点: 1. 一切对象都最终继承自Object对象,Object对象直接继承自根源对象null 2. 一切函数对象(包括Object对象)都直接继承自Function对象 3. Object对象直接继承自Function对象 4. Function对象直接继承自己,最终继承自Object对象 是不是感觉有点绕,下面我会逐点解释(下面的"一切对象"指除null的其它一切对象): 1. 一切对象都最终继承自Object对象,

brew使用

安装 源切换(推荐中国科大) # 替换brew.git: $ cd "$(brew --repo)" # 中国科大: $ git remote set-url origin https://mirrors.ustc.edu.cn/brew.git # 清华大学: $ git remote set-url origin

Episode

00:00:00 00:00:00