自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 jsonwebtoken原理

阮一峰

2020-10-31 22:40:05 236

原创 git后悔药大全

这是各种普通的回退和文件删除这是回退某个文件到某个版本,但是不保留工作区这是回退某个文件到某个版本,保留工作区

2020-10-28 22:10:57 210

原创 jsonp跨域原理,用nodejs(express)实现跨域

跨域原理nodejs实现跨域

2020-10-27 16:59:29 305

原创 javascirpt排序算法动图

https://visualgo.net/zh/sorting

2020-10-25 09:47:52 97

原创 javascript手撕kruskal算法

kruskal是一种求最小生成树的贪心算法,与prim算法的以点为寻找目标不同,kruskal算法是以边为寻找目标,核心思想很简单,每次找到最小的边,把这些边串起来生成树就可以了,只是这个过程中要注意避免环的产生,以下是js代码const INF = Number.MAX_SAFE_INTEGER;const initializeCost = graph => { const cost = []; const { length } = graph; for (let i = 0; i

2020-10-24 11:35:30 300 2

原创 javascript手撕prim算法

prim算法是求求最小生成树的一种贪心算法,而且代码与dijkstra算法非常类似,不同的地方是dijkstra算法每次寻找和更新是所有已知点的距离到源点的最小距离, 而prim算法每次寻找的是现有最小生成树的所有的不在生成树上的临近点的最小距离。const INF = Number.MAX_SAFE_INTEGER;const minKey = (key, visited) => { let min = INF; let minIndex = -1; for (let i = 0;

2020-10-22 10:24:52 188

原创 javascript手撕Floyd-Warshall算法(带路径)

folyd-warshall是求最短路径的算法,它的功能比较强大,可以求任意两点的最短距离。它是一种动态规划的算法,floyd-warshall与dijkstra算法有着很大的区别:1.结果上,dijkstra是求得一点到任一点的最短距离,而floyd-warshall的结果是任意两点之间的最短距离2.思想上,dijkstra是从给定源点开始,比较源点到当前点所有可达的点的距离,找出最小的距离,这个最小的距离上的最后一个点,就是源点到最后一个点的最短距离,然后再把最后一个点作为当前点进行迭代,每次都要

2020-10-21 19:53:25 269

原创 git从远程仓库中拉取新的指定分支

若本地分支不存在的情况:git checkout -b 本地分支名称 origin/远程分支名称使用该方式会在本地新建分x,并自动切换到该本地分支./----------------------------------------------------------------------------------------------------/git fetch origin 远程分支名称:本地分支名使用该方式不会主动切本地分支,只会多建立一个本地分支并和远程分支关联....

2020-10-21 10:09:43 3910

原创 javascript原始值包装类型

为什么在js中的原始值,可以调用方法,比如说:let str = 'I love China!';console.log(str.slice(0,6));//I love但是却不能给原始值添加属性str.age = 18;console.log(str.age);//undefined这一切都和原始值包装类型及其声明周期有关:每当用到某个原始值的属性或者方法使,javascript总会在后台创建一个原始值包装类型的对象,从而暴露出操作原始值的各种方法。在以读模式访问字符串的方法或者属性时,

2020-10-20 15:02:46 577

原创 javascript构造函数的创建过程以及构造函数内部return值的影响

用new 构造函数()来创建一个对象时,构造函数内部发生了如下的步骤。1.创建一个新的对象。2.新对象的[[prototype]] 也就是__proto__属性设置为构造函数的prototype属性。3.把this指向这个对象。4.执行构造函数内部的代码。5.如果构造函数return了一个不为null的引用值(注意是引用值),那么则返回这个引用值,否则返回前面4部创建的新对象。...

2020-10-20 11:50:54 154

原创 javascript预编译

知乎

2020-10-20 11:35:18 103

原创 git回退远程分支

git回退远程分支

2020-10-19 13:43:05 1659

原创 javascript 手撕dijkstra算法,求最短距离和最短路径(超详细注释)

图是用一个二维数组表示的,0表示不相邻或者本顶点,不为0的表示到相邻点的距离const INF = Number.MAX_SAFE_INTEGER;// 从当前的已知距离中,找出最短路径,返回最短路径的最后一个点const minRoute = (dist, visited) => { let minIndex = -1; let min = INF; for (let i = 0; i < dist.length; i++) { if (!visited[i] &am

2020-10-19 10:43:30 936

原创 javascript执行上下文、作用域、闭包总结

1.执行上下文和变量对象1)变量或函数的执行上下文决定了它们能够访问哪些数据,以及它们的行为。2)每个执行上下文都有一个与之关联的变量对象(variable object),这个上下文中定义的所有变量和函数都存在于这个对象上,这个对象我们无法访问。3)如果执行上下文是函数,那么它的活动对象(activation object)将作为变量对象,活动对象最初只有一个定义变量:arguments2.上下文栈1)上下文在其所有代码都执行完毕后会被销毁,包括定义在它上面的所有变量和函数。全局上下文只有在页面

2020-10-13 20:51:55 203

原创 javascript变量知识点

1.javascript的变量的类型分为两种:原始值和引用值。2.到目前一共有7种原始值:Undefined、Null、Number、String、Boolean、Symbol、BigInt。3.保存原始值的变量是按值进行访问的,保存引用值的变量是按引用(内存地址)进行访问的。4.用new Object()和字面量对象{}创造出来的对象的效果是一模一样的,所以我们一般用{}创建一个对象。5.原始值不能有属性,如果尝试给原始值添加属性,不会报错,但是不会生效。6.原始类型的初始化只能用原始字面量的方

2020-10-13 16:57:53 219

原创 javascript变量类型的确定

1.typeof操作符来确认类型1)typeof操作符一共会产生undefined、string、number、boolean、object、function、symbol、bigint8种结果,不严谨地说,跟8(7 + 1)种数据类型的数量是一样的,但是数据类型是没有Function这种类型的,typeof也没有null这种结果。2)typeof一个function(他是引用类型)的结果是function,typeof null的结果是object,见如下代码:function fn() {}c

2020-10-13 16:50:28 292

原创 javascript数组解构赋值交换变量的性能问题

原链接是墙外的链接,可能比较慢。总的意思就是解构赋值是遍历了数组的遍历器来获取的值,所以性能没有正常操作(索引操作)交换值来得快。

2020-10-12 15:59:46 984

原创 如何选择开源许可证

ruanyifeng

2020-10-11 23:28:26 120

原创 JavaScript的尾调用优化详解

尾调用优化

2020-10-05 15:19:55 342

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除