随笔分类 - JavaScript
摘要:单例模式 单例模式仅允许类或对象具有单个实例,并且它使用全局变量来存储该实例 实现方法是判断是否存在该对象的实例,如果已存在则不再创建 使用场景适用于业务场景中只能存在一个的实例,比如弹窗,购物车 // 定义单例函数/类 function SingleShopCart() { let instanc
阅读全文
摘要:装饰器模式 (我更倾向于叫 解耦模式) 在继承(extends)没有语法上的实现之前常用 在不改变原来的结构和功能基础上,动态装饰一些针对特别场景所适用的方法或属性,即添加一些新功能以增强它的某种能力 原有方法维持不变,在原有方法上再挂载其他方法来满足现有需求; 函数的解耦,将函数拆分成多个可复用的
阅读全文
摘要:观察者模式 观察者模式,是对象的行为模式,在对象之间定义了一对多的依赖关系 就是多个观察者和一个被观察者之间的关系,当被观察者发生变化的时候,会通知所有的观察者对象,他们做出相对应的操作 实现方法定义一组可变的策略类封装具体算法,定义一组不变的环境类将请求委托给某一个策略类 使用场景适用于业务场景中
阅读全文
摘要:策略模式 策略模式定义一系列的算法,将每一个算法封装起来,并让他们可以相互替换 实现方法定义一组可变的策略类封装具体算法,定义一组不变的环境类将请求委托给某一个策略类 使用场景适用于业务场景中需要判断多种条件,甚至包含复杂条件嵌套的,可以使用策略模式来提升代码的可维护性和可读性。比如支付,博客权限校
阅读全文
摘要:代理模式 代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。 # 实现方法 定义一个委托者和一个代理,需要委托的事情在代理中完成 使用场景: 在某些情况下,一个客户类不想或者不能直接引用一个委托对象, 而代理类对象可以在客户类和委托对象
阅读全文
摘要:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>File Read
阅读全文
摘要:定义柯里化函数 /** * * @param {*} fromYear: 获取的起始年份 */ export function getYears(fromYear) { /** * @param {*} toYear: 获取的中止年份 */ return function (toYear) { co
阅读全文
摘要:幂等 idempotent 幂等操作的特定就是其任意多次执行所产生的影响与一次执行的影响相同 POST POST 用来创建一个新的数据 POST 不是幂等的, 意味着多次操作的结果是不同的, 多次操作会导致相同的数据被创建, 除了id不同,其他部分的数据是相同的 PUT 更准确的定义:Replace
阅读全文
摘要:nrm 和 nvm 🚀 nrm (npm registry manager)是npm的镜像源管理工具 🚀 🚀 nvm (node version manager)是nodejs的版本管理工具 🚀 nrm # nrm 安装 npm install -g nrm # nrm ls npm htt
阅读全文
摘要:demo let timeout = (sec, num) => { const now = new Date().getTime() // 获取进入方法时的时间 let flag = true let count = 0 while (flag) { count++ const after = n
阅读全文
摘要:forEach是不能阻塞的, 默认【并行】方式 const list = [1, 2, 3] const square = num => { return new Promise((resolve, reject) => { setTimeout(() => { if (isNaN(num)) {
阅读全文
摘要:__dirname __dirname 指向运行代码的文件夹 console.info('__dirname', __dirname) // C:\Leslie\Web_learning\Daily-interview resolve 1.不带参数时,返回当前文件的绝对路径 console.info
阅读全文
摘要:map 生成新数组的函数,3个参数 1-currentValue, callback数组中正在处理的当前元素 2-index(可选): callback数组中正在处理的当前元素的索引 3-array(可选): map方法调用的数组 /** * 语法: * var new_array = arr.ma
阅读全文
摘要:// prototype 1 function A(){} A.prototype.n = 1 let b = new A() A.prototype.n = 2 A.prototype.m = 3 let c = new A() console.dir(b) // {n: 2, m: 3} con
阅读全文
摘要:回调函数 回调函数也被称为高阶函数 所谓高阶函数,就是说值 函数作为参数被传递或者返回值输出 操作函数的函数称为 高阶函数 把一段可执行的代码(一个函数)作为参数传递给其他的代码(另一个函数),并在需要的时候方便调用这个可执行代码(回调函数) // 过程,当我们在装修房子的时候,你负责采购材料,我负
阅读全文
摘要:express 基于 Node.js 平台,快速、开放、极简的 Web 开发框架 npm init -y npm i express cors 编写 server.js 文件 const express = require('express') const cors = require('cors'
阅读全文
摘要:require.context require.context是webpack中用来管理依赖的一个函数,此方法会生成一个上下文模块,包含目录下所有的模块的引用,同构正则表达式匹配,然后require进来 使用场景 我们在一个业务模块的list中要使用components下所有组件,手动一个一个引入如
阅读全文
摘要:普通排序 const arr = [] arr.sort((x, y) => x.prop - y.prop) 中文属性值排序 const arr = [] arr.sort((x, y) => x.typeName.localeCompare(y.typeName))
阅读全文
摘要:安装yrm npm install -g yrm 列出当前可用的镜像源 # yrm ls npm https://registry.npmjs.org/ cnpm http://r.cnpmjs.org/ taobao -- https://registry.npm.taobao.org/ nj h
阅读全文
摘要:nrm: npm registry manager npm 镜像源管理工具 安装nrm npm install -g nrm 查看所有的镜像源 nrm ls # nrm ls npm https://registry.npmjs.org/ * yarn https://registry.yarnpk
阅读全文