自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Node.js基础

这个网址里面是所有关于 node.js 的笔记。

2023-09-18 13:38:26 91

原创 数据库与身份认证

③ 每个表中具体存储哪些信息,由字段来决定,例如:我们可以为 users 表设计 id、username、password 这 3 个字段。② 不同的数据,要存储到数据库的不同表中,例如:用户数据存储到 users 表中,图书数据存储到 books 表中。(例如 MySQL、Oracle、SQL Server)。有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。,通过它,可以方便的操作存储在 MySQL Server 中的数据。

2023-09-13 10:12:17 209

原创 认识 Express

通俗的理解:Express 的作用和 Node.js 内置的 http 模块类似,:就是一个 npm 上的第三方包,提供了快速创建 Web 服务器的便捷方法。官方给出的概念:Express 是。是专门用来创建 Web 服务器的。基于 Node.js 平台。

2023-09-10 17:00:42 194

原创 认识模块化

模块化是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说,模块是可组 合、分解和更换的单元。

2023-09-09 16:24:12 439

原创 初识Node.js与内置模块

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 的官网地址: https://nodejs.org/zh-cn/① 打开终端② 输入 node 要执行的js文件的路径fs 模块是 Node.js 官方提供的、用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求。fs.readFile() 方法,用来读取指定文件中的内容fs.writeFile() 方法,用来向指定的文件中写入内容。

2023-09-07 16:30:34 464

原创 HTML5 Canvas(画布)

简单来说,是HTML5中的标签,它是一个容器,可以使用JS在其中绘制图形或文字。MDN是一个可以使用脚本 (通常为JavaScript) 来绘制图形的HTML元素。例如,它可以用于绘制图表、制作图片构图或者制作简单的动画。主要聚焦于2D图形。

2023-08-03 08:24:58 181

原创 JS 获取元素的大小(高度和宽度)

offsetHeight = border-top-width(上边框的宽度) + 内上边距 + 高度 + 内下边距 + border-buttom-width(下边框的宽度)clientHeight = 内上边距 + 高度 + border-button-width(下边框的宽度)scrollHright = 内上边距 + 包含内容的完全高度 + 内下边距。中,使用下面3组属性可以获取元素的高度和宽度。

2023-08-01 10:37:09 564

原创 排他思想干货

3.注意顺序不能颠倒,首先要把除自己外的其他人干掉,在设置自己。1.所有元素全部清除样式。2.给当前元素设置样式。

2023-08-01 10:33:22 35

原创 前端学习笔记之 HTTP协议、存储、Ajax(十四)

utils.js、defaults.js、ajax.js都一致。

2023-06-28 21:10:35 111 1

原创 什么是 HTTP协议

通信,就是信息的传递和交换。通信的主体通信的内容通信的方式1.现实生活中的通信案例:张三要把自己考上传智专修学院的好消息写信告诉自己的好朋友李四。其中:通信的主体是张三和李四;通信的内容是考上传智专修学院;通信的方式是写信;2.互联网中的通信案例:服务器把传智专修学院的简介通过响应的方式发送给客服端浏览器。其中:通信的主体是服务器和客服端浏览器;通信的内容是传智专修学院的简介;通信的方式是响应;通信协议是指通过的双方完成通信所必须遵守的规则和约定。

2023-06-20 16:34:52 39

原创 跨域与JSONP

JSONP(JSON with Padding)是JSON的一种 “ 使用模式 ”,可用于解决主浏览器的跨域数据访问的问题。2.2 JSONP的实现原理由于浏览器同源策略的限制,网页中无法通过 Ajax 请求同源的接口数据。但是 <script> 标签不受浏览器同源策略,可以是通过 scr 属性,请求非同源的 js 脚本。因此,JSONP 的实现原理,就是通过 <Script>标签的 src 属性,请求跨域的数据接口,并通过函数调用的方式,接收跨域接口响应回来的数据。

2023-06-18 13:18:18 46

原创 Ajax 加强

XMLHttpResquest(简称 xhr)是浏览器提供的 JavaScript 对象,通过它可以请求服务器上的数据资源。之前所学的 jQuery 中的 Ajax 函数,就是基于 xhr 对象封装出来。

2023-06-13 15:57:14 56 1

原创 form表单与引擎模板

表单在网页中主要负责数据采集功能。HTML中的标签,就是用于采集用户输入信息,并通过标签的提交操作,把采集到信息提交到服务器端进行处理。

2023-06-12 16:15:28 230

原创 HTTP协议+Ajax基本知识+axios+模板引擎的基本使用

Ajax的全称是 Asynchronous Javascript And XML (异步JavaScript和XML)。通俗的理解:在网页中利用 XMLHttpRequest对象和服务器进行数据交互的方式,就是Ajax。

2023-06-04 09:31:43 60

原创 jQuery

总结:如果属性的类型是boolean(checked、selected、disabled),则使用prop()方法;否则使用attr()方法。注意:会匹配所有的input、textarea、select和button元素。在需要使用jquery的页面引入jquery的核心js文件。

2023-06-02 11:08:51 44

原创 认识大O表示法

那么第二个为黑色的数据index=5,第3个数据为黑色的数据index = 10(不存在)。指定第一个数据为X时交换0次,指定第二个数据为X最多需要交换1次,以此类推,指定第N个数据为X时最多需要交换N - 1次,所以一共需要交换N * (N - 1) / 2次,平局次数为。可以看到效率从大到小分别是:O(1)> O(logn)> O(n)> O(nlog(n))> O(n²)> O(2n),先选出一个数据(比如65),将比其小的数据都放在它的左边,将比它大的数据都放在它的右边。插入排序是简单排序中效率。

2023-05-29 09:29:27 899

原创 实现图结构

创建一个字典对象edges存储图的边,其中key为顶点,value为存储key顶点相邻顶点的数组。基于递归实现深度优先搜索算法:定义dfs方法用于调用递归方法dfsVisit,定义dfsVisit方法用于递归访问图中的各个顶点。如此循环直到队列中元素为0,即所有顶点都变黑并移出队列后才停止,此时图中顶点已被全部遍历。为图类Graph添加toString方法,实现以邻接表的形式输出图中各顶点。这里主要解释一下代码中的第3步操作:访问指定顶点的相邻顶点。带权图中的边有一定的权重含义;

2023-05-25 10:29:47 85

原创 红黑树的插入操作

尽管新节点是红色的,但是新节点N有两个黑色节点NIL,所以通向它的路径上黑色节点的个数依然相等,因此满足规则5。变换之后发现根节点7为红色不符合规则2,所以把以7为根节点的红黑树看成一个新插入的节点N2,再进行第三次变换。在二叉树中依次插入节点:10,9,8,7,6,5,4,3,2,1。节点P是红色节点,节点U是黑色节点,并且节点N为节点P的。节点P是红色节点,节点U是黑色节点,并且节点N为节点P的。节点P为红色,节点U也为红色,此时节点G必为黑色,即。为了方便说明,规定以下四个节点:新插入节点为。

2023-05-25 09:21:57 72

原创 认识红黑树

旋转二叉搜索树,使得父节点原来的位置被自己的右子节点替代,左子节点的位置被父节点替代;旋转二叉搜索树,使得父节点原来的位置被自己的左子节点替代,右子节点的位置被父节点替代;除此之外,二叉搜索树右旋转之后仍为二叉搜索树:、为了重新符合红黑树的规则,需要把。必然会导致一条路径上多了一个。的情况,但是这种情况可以通过。红色节点虽然可能导致。

2023-05-24 11:25:32 32

原创 认识平衡树

当插入的数据是有序的数据,就会造成二叉搜索树的深度过大。当插入一组有序数据:6 5 4 3 2就会变成深度过大的搜索二叉树,会严重影响二叉搜索树的性能。来操作一棵树,我们需要。

2023-05-24 11:17:06 34

原创 二叉搜索树

什么是二叉搜索树?二叉搜索树(BST,Binary Search Tree),也称二叉排序树或二叉查找树二叉搜索树是一颗二叉树, 可以为空;下面哪些是二叉搜索树, 哪些不是二叉搜索树的操作truefalseminmax。

2023-05-23 10:50:41 92

原创 认识二叉树

对任何非空二叉树 T,若n0表示叶结点的个数、n2是度为2的非叶结点个数,那么两者满足关系n0 = n2 + 1。完美二叉树(Perfect Binary Tree) , 也称为满二叉树(Full Binary Tree)前面, 我们已经提过二叉树的重要性, 不仅仅是因为简单, 也因为几乎上所有的树都可以表示成二叉树的形式.一个二叉树第 i 层的最大结点数为:2^(i-1), i >= 1;深度为k的二叉树有最大结点总数为: 2^k - 1, k >= 1;二叉树的存储常见的方式是数组和链表.

2023-05-21 10:08:12 37

原创 认识树结构

树也是一种非常常用的数据结构, 特别是二叉树.二叉树是程序中一种非常重要的数据结构, 它的优势是前面介绍的数据结构所没有的.

2023-05-20 11:22:34 95

原创 质数的容量

虽然在链地址法中将容量设置为质数, 没有在开放地址法中重要, 但是其实链地址法中质数作为容量也更利于数据的均匀分布. 所以, 我们还是完成一下这个步骤.前面, 我们有对容量进行扩展, 方式是: 原来的容量 x 2。我们这里先讨论一个常见的面试题, 判断一个数是质数.但是, 这种做法的效率并不高. 为什么呢?那么我们可以封装获取新的容量的代码(质数)首先, 将初始的limit为8, 改成7。我们前面提到过, 容量最好是质数.

2023-05-19 15:56:36 33

原创 哈希表扩容

我们在来将讲一个哈希表的概念: 哈希表扩容.在什么时候调用扩容方法呢?如果我们不断的删除数据呢?修改remove方法。

2023-05-19 10:17:23 241

原创 创建哈希表

可能你学到这里的时候, 已经感觉到数据结构的一些复杂性, 但是如果你仔细品味, 你也会发现它在设计时候的巧妙和优美, 当你爱上它的那一刻, 你也真正爱上了编程.最终我们的哈希表的数据格式是这样: [[ [k,v], [k,v], [k,v] ] , [ [k,v], [k,v] ], [ [k,v] ] ]实现的哈希表(基于storage的数组)每个index对应的是一个数组(bucket).(当然基于链表也可以.)我们像封装其他数据结构一样, 先来创建一个哈希表的类: HashTable。

2023-05-19 09:36:59 589

原创 哈希函数实现

现在, 我们就给出哈希函数的实现:

2023-05-19 09:25:32 20

原创 哈希化的效率

公式来自于Knuth(算法分析领域的专家, 现代计算机的先驱人物), 这些公式的推导自己去看了一下, 确实有些繁琐, 这里不再给出推导过程, 仅仅说明它的效率.哈希表中执行插入和搜索操作可以达到O(1)的时间级,如果没有发生冲突,只需要使用一次哈希函数和数组的引用,就可以插入一个新数据项或找到一个已经存在的数据项。随着填装因子变大,效率下降的情况,在不同开放地址法方案中比链地址法更严重, 所以我们来对比一下他们的效率, 再决定我们选取的方案.二次探测和再哈希法的性能相当。它们的性能比线性探测略好。

2023-05-15 09:55:30 266

原创 地址的冲突

但是依然有可能会发生冲突, 比如melioration这个单词, 通过哈希函数得到它数组的下标值后, 发现那个位置上已经存在一个单词demystify, 因为它经过哈希化后和melioration得到的下标实现相同的.前面前言部分我们已经简单说明了, 什么是冲突. 虽然我们不希望这种情况发生, 当然更希望每个下标对应一个数据项, 但是通常这是不可能的。我们需要针对这种冲突提出一些解决方案, 即使冲突的可能性比较小, 你依然需要考虑到这种情况, 以便发生的时候进行对应的处理代码.常见的情况有两种方案.

2023-05-10 10:14:17 141

原创 认识哈希化

现在需要一种压缩方法, 把幂的连乘方案系统中得到的巨大整数范围压缩到可接受的数组范围中。

2023-05-07 09:02:35 95

原创 字典的认识和特点

我们向之前封装集合一样, 封装一个字典的构造函数。

2023-04-22 09:38:13 365

原创 集合间操作

1. 并集操作并集其实对应就是数学中并集的概念集合A和B的并集,表示为AUB,定义如下:意思是×(元素)存在于A中,或×存在于B中。

2023-04-20 10:17:57 74

原创 集合的介绍

几乎每种编程语言中,都有集合结构。集合比较常见的实现方式时哈希表(后续会学习),我们这里来实现一个封装的集合类。集合的特点集合通常是由一组无序的,不能重复的元素构成和数学中的集合名词比较相似,但是数学中的集合范围更大一些,也允许集合中的元素重复在计算机中,集合通常表示的结构中元素是不允许重复的看成一种特殊的数组其实集合你可以将它看成一种特殊的数组特殊之处在于里面的元素没有顺序,也不能重复没有顺序意味着不能通过下标值进行访问,不能重复意味着相同的对象在集合中只会存在一份集合的实现。

2023-04-14 11:32:27 50

原创 认识双向链表

我们先来认识一下,双向链表中应该有哪些常见的操作。我们来创建一个双向链表的类。

2023-04-12 13:15:09 43

原创 链表方法实现

接下来实现另外一个添加数据的方法: 在任意位置插入数据。我们这里先完成根据位置移除数据的方式。

2023-04-11 14:51:40 311

原创 优先级队列

一个现实的例子就是机场登机的顺序另一个现实中的例子是医院的(急诊科)候诊室计算机中,我们也可以通过优先级队列来重新排序队列中任务的顺序优先级队列代码实现:插入方法的实现:

2023-04-10 10:28:54 37

原创 认识队列结构

队列有哪些常见的操作呢?

2023-04-09 20:00:28 28

原创 认识栈结构

也是一种数据结构,目前我们还没有学习,并且JavaScript中并没有自带链表结构;后续,我们会自己来实现链表结构,并且对比数组和链表的区别因此,我们这里实现的栈结构基于数组。

2023-04-09 13:50:44 62

原创 什么是数据结构和算法

数据结构就是在计算机中,存储和组织数据的方式。我们知道,计算机中数据量非常庞大,如何以高效的方式组织和存储呢?这就好比一个庞大的图书馆中存放了大量的书籍,我们不仅仅要把书放进入,还应该在合适的时候能够取出来数组(Array)JS的数组就是API调用栈(Stack)链表(Linked List)图(Graph)散列表(Hash)队列(Queue)树(Tree)堆(Heap)一个有限指令集,每条指令的描述不依赖于语言接受一些输入(有些情况下不需要输入)产生输出。

2023-04-09 11:37:10 23

原创 JavaScript 的循环语句

通过循环语句可以使指定代码反复执行。

2023-04-08 09:28:44 69

空空如也

空空如也

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

TA关注的人

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