随笔分类 - Javascript
摘要:javascript 语言层面只原生支持两种作用域类型:全局作用域 和 函数作用域 。全局作用域程序运行就有,函数作用域只有定义函数的时候才有,它们之间是包含的关系。 作用域之间是可以嵌套的,我们把这种嵌套关系称为 作用域链。 可执行代码在作用域中查询变量时,只能查询 本地作用域 及 上层作用域,不
阅读全文
摘要:// 有一个失败则返回失败的结果,全部成功返回全成功的数组 Promise.all = function (promiseList = []) { return new Promise((resolve, reject) => { const result = [] let count = 0 if
阅读全文
摘要:const aa = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] function transfer (aa) { const newArr = aa[0].map((col, i) => { return aa.map(row => { return row[i] })
阅读全文
摘要:function sum(a, b, c) { return a + b + c } function curry(f) { return function fn(...args) { if (args.length >= f.length) { return f.apply(this, args)
阅读全文
摘要:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="wi
阅读全文
摘要:const list = ['1/3', '1/4', '1/5', '1/6']; console.log(CalculateFraction(list)); function CalculateFraction (list) { if (list.length 0) { return false
阅读全文
摘要:// 被观察者类 class Subject { constructor(name) { this.name = name this.observers = [] this.state = 'xx' } // 被观察者提供订阅观察者方法 attach(observer){ this.observer
阅读全文
摘要:// 压缩字符串 'aaaaaabbbbbcccca' => 'a6b5c4a1' function compressStr(strs = 'aaaaaabbbbbccccaa') { let pre = strs[0] let curNum = 1 let res = '' for (let i
阅读全文
摘要:// 新数据插入到链表尾部; // 每当缓存命中(即缓存数据被访问),则将数据移到链表尾部 // 当链表满的时候,将链表头部的数据丢弃。 class LRUCache { constructor(capacity) { this.capacity = capacity this.cache = ne
阅读全文
摘要:const delay = function (time) { return new Promise((resolve, reject) => { setTimeout(() => { console.log(time); resolve(time) }, time); }) } let tasks
阅读全文
摘要:总结: Express 封装、内置了很多中间件,比如 connect和 router,而 KOA 则比较轻量,开发者可以根据自身需求定制框架; Express 是基于 callback 来处理中间件的,而 KOA 则是基于 await/async; 在异步执行中间件时,Express 并非严格按照洋
阅读全文
摘要:console.log('1','1'); setTimeout(function() { console.log('2','5'); process.nextTick(function() { console.log('3','7'); }); new Promise(function(resol
阅读全文
摘要:js下载图片文件后端返回url function imgBase64(img) { const canvas = document.createElement("canvas"); canvas.width = img.width; canvas.height = img.height; const
阅读全文
摘要:toString+split function flatArr(arr) { return arr.toString().split(',') } 递归 function flatArr(arr) { return Array.isArray(arr) ? arr.reduce((acc, cur)
阅读全文
摘要:const arr = [ { id: 1, parent_id: null }, { id: 2, parent_id: 1 }, { id: 3, parent_id: 1 }, { id: 4, parent_id: 2 }, { id: 5, parent_id: 4 }, ] const
阅读全文
摘要:const responseList = [ 1,2,2,4,5,6,1,5,3,6] console.log(uniqueBy(responseList,'a')); function uniqueBy(arr, key) { return arr.reduce((acc,cur)=>{ if (
阅读全文
摘要:原有的树结构 const jsdata = [ { category: 1, name: '第一部分 常识判断', qcount: 10, judgeFlag: 0, description: '常识判断开始', children: [ { category: 6, name: '1.1 部分名称'
阅读全文
摘要:模块化作用 解决变量间相互污染的问题,以及变量命名冲突的问题 提高代码的可维护性、可拓展性和复用性 自执行函数实现的模块化 AMD 、CMD 和 UMD 2.1 AMD 是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义" ,它采用异步方式加载模块,模块
阅读全文
摘要:// 输入:"abbaca" // 输出:"ca" var removeDuplicates = function (str) { let stack = [] for (const s of str) { let pre = stack.pop() if (pre !== s) { stack.p
阅读全文
摘要:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content
阅读全文