2023-04-22 JavaScript常见问题 JavaScript 前端 闭包 和 作用域作用域作用域是指在程序中定义变量的区域,作用域规定了变量与函数的活动范围。 在es6之前,js中只有全局作用域和函数作用域。在这之后,引入了let 和 const ,它们会创建块级作用域。 在函数调用栈中,当内部函数查找一个
2023-04-22 Proxy构造函数 JavaScript 前端 使用Proxy结合观察者模式,模拟一个实现一个简单的双向绑定12<input type="text" id='input'><div id="container"
2023-04-22 var、let、const原理 JavaScript 前端 var、let、const的作用和区别var 会在当前执行环境中进行变量提升 可重复声明,可以修改 如果未使用var关键字声明,则会提升为全局 // 严格模式下会报错 let let无法重复声明 let有暂存死区,无
2023-04-22 JavaScript设计模式 -- 8.模板方法模式 JavaScript设计模式 前端 定义 模板方式是一种只需要继承就可以实现的简单的模式 模板由两个部分结构组成,第一个是抽象类,第二部分是具体的实现子类。通常在抽象父类中封装了子类的算法框架,包括实现一些公共方法以及封装子类中所有方法的执行顺序。子类通过继承这个抽象父类,
2023-04-22 JavaScript设计模式 -- 7.组合模式 JavaScript设计模式 前端 定义 用小的对象来构建更大的对象,而这些小的对象本身也可能是有更小的对象构成。 用途 组合模式将对象组合成树形结构,以表示 部分-整体的层次结构。此外还可通过对象的多态性表现,使得用户对单个对象和组合对象的使用具有一致性。如下: 在命
2023-04-22 JavaScript设计模式 -- 6.命令模式 JavaScript设计模式 前端 定义 命令模式中的命令(command)指的是一个执行某些特定事情的指令 应用场景有时候需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是什么。此时希望用一种松耦合的方式来设计程序,使得发送者和请求接收者能够消除
2023-04-22 JavaScript设计模式 -- 4.迭代器模式 JavaScript设计模式 前端 定义 迭代器模式无非就是循环访问聚合对象中的各个元素 迭代器又分内部迭代器和外部迭代器在js中,就已经有对应的实现。 内部迭代器如, Array.prototype.forEach(callback(currentValue [, ind
2023-04-22 JavaScript设计模式 -- 5.发布订阅模式 JavaScript设计模式 前端 定义 发布订阅模式又叫观察者模式。它定义对象间的一对多的依赖关系,当一个对象的状态发生变化时,所有订阅它的对象都将收到通知。js中我们一般用事件模型来代替传统的观察者 应用场景观察者模式在实际中有很多的应用场景,比如: 房产中介发的看房
2023-04-22 JavaScript设计模式 -- 3.代理模式 JavaScript设计模式 前端 定义 代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。代理模式的关键是当客户不方便直接访问对象或者不满足需要时。提供一个替身对象来控制对这个对象的访问,客户实际上访问的是替身对象 12345st=>start: 客户
2023-04-22 JavaScript设计模式 -- 2.策略模式 JavaScript设计模式 前端 定义 策略模式就是定义一系列的算法,将他们一个个封装起来。 使用场景在实际开发中,我们需要将算法的含义扩大一些。 比如,策略模式可以有效的拆分 业务逻辑,减少代码中的if .... else....这种分支 假设我们有一个按钮。需要根据