随笔分类 - JavaScrip学习
async await要点
摘要:async await 要点1.await 后面可以追加promise对象 获取resolve的值2.await 必须包裹在async函数里面3.async 函数执行返回的也是一个promise对象4.try-catch 截获promise中reject的值
js的隐式屏蔽
摘要:1.首先,我们先来了解一下js的getOwnProperty和in和Object.keys()以及getOwnPropertyNames hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)。 Object.keys() 方法会返回一
js随机数组的实现
摘要:let arr = [1,2,3,4,5,6,67,8,8,9,0,10]; let arr1 = [1,2,3,4,5,6,67,8,8,9,0,10]; //随机算法1 function shuffle(array){ for(let i = array.length-1; i > 0; i--
for of和for in的区别
摘要:1.遍历数组 for in,for of都可以遍历数组的,for in 里面的key(定义的一个变量)是数组的下标,而for of里面的key是数组每个下标对应的值 let arr = ["a","b"]; for (let key in arr) { console.log(key);//0,1
前端常见排序算法
摘要:const Compare = { LESS_THAN:0, BIGGER_THAN:1, EQUAL:2, } function defaultCompare(a,b){ return a b?Compare.EQUAL:a>b?Compare.BIGGER_THAN:Compare.LESS_T
js实现归并排序
摘要:const Compare={ LESS_THAN:-1, BIGGER_THAN:1, EQUAL:0, } function defaultCompare(a,b){ return a b?Compare.EQUAL: a > b ?Compare.BIGGER_THAN:Compare.LES
js实现kruskal和prim算法
摘要:1.kruskal算法 const INF = Number.MAX_SAFE_INTEGER; const find = (i, parent) => { while (parent[i]) { i = parent[i]; // eslint-disable-line prefer-destru
js实现dijkstra算法和floyd算法
摘要:1.dijkstra算法 dijkstra是一个从单个源到所有源的最短路径的贪心算法,即每次找出最有利的解,合起来就是最优解。 假如现在有一个图如下, 首先,我们先用一个数组来表示A顶点到各个其他顶点之间的距离, var graph = [ [0, 2, 4, 0, 0, 0], [0, 0, 2,
js的构造函数,实例,原型的关系
摘要:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针(constructor),每个实例都一个内部指针([[prototype]])指向构造函数。
js的创建对象的方法
摘要:第一种:工厂模式 根据接收参数返回,包含参数的对象 优点:解决创建多个对象的问题 缺点:没法判断对象的类型 function createPerson(name,age,job){ var o = new Object(); o.name = name; o.age = age; o.job = j
Boolean的逻辑非,逻辑与,逻辑或
摘要:1.逻辑非 如果操作数是一个对象,返回false; alert(!{a:1})//false 如果操作数是一个空字符串,返回true; alert(!"")//true 如果操作数是一个非空字符串,返回false; alert(!"fafa")//false 如果操作数是数值0,返回true; al
函数表达式与函数声明谁先解析
摘要:1.解析器执行函数表达式和函数声明会有不同的反应,解析器在向执行环境加载数据时,会率先解析函数声明,而至于函数表达式,等到解析器执行到它的时候,才会解析。 如下: alert(sum2(1,2)); function sum2(a,b){ return a + b; } alert(sum3(1,3
js实现图的遍历之广度优先搜索
摘要:1.图 图是一种非线性数据结构,是网络模型的抽象模型,图是一组由边连接的节点。 2.图的组成 一个图G = (V,E),V:一组顶点,E:一组边 3.强连通图 任何两个节点,它们之间都有路径到达,称为强连通图 4.邻接矩阵 5.领接表 6.字典 我采用是领接表的方法,所以这里我采用字典来存储,每个顶
js实现一个数组的splice
摘要:先来了解splice的用法 array.splice(start,deleteCount,item...) splice方法从array中移除一个多个元素(会对原数据进行修改,而slice不会),并用新的item替换它们。参数start是从数组array移除元素的开始位置。参数deleteCount
js正则
摘要:部分正则: (?:...) 表示非捕获型分组,就是不会缓存下来,留着后面再用 ? 它表示重复0或1次 (...) 表示一个捕获型分组(capturing group)。一个捕获型分组将复制它所匹配的文本,并将其放人result数组中。每个捕获型分组都将被指定一个编号。第一个捕获型分组的编号是1,所以
js的红黑树
摘要:const Compare ={ LESS_THAN:-1, BIGGER_THAN:1, EQUALS:0 } const BalancedFactor = { UNBALANCED_LEFT:1, SLIGHTLY_UNBALANCED_LEFT:2, BALANCED:3, UNBALANCE
javaScript实现平衡树
摘要:const Compare ={ LESS_THAN:-1, BIGGER_THAN:1, EQUALS:0 } class Node{ constructor(key){ this.key = key; this.left = null; this.right = null; } } functi
使用javaScript实现一个二叉树,实现插入节点,删除节点,查询节点,最大最小值查询,中序,前序,后序遍历功能
摘要:const Compare = { LESS_THAN: -1, BIGGER_THAN: 1, EQUALS: 0 }; function defaultCompare(a,b){ return a == b?Compare.EQUALS:(a<b)?Compare.LESS_THAN:Compa
使用javaScript实现散列表的线性探查法
摘要:class ValuePair{ constructor(key,value){ this.key = key; this.value = value; } } function defaultToString(item){ if(item == null){ return 'null'; } if