自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 将扁平化数据转化为树型结构(将json转化为动态路由表)

【代码】将扁平化数据转化为树型结构(将json转化为动态路由表)

2023-03-18 11:03:05 193

原创 JavaScript高级 js语言通识

如 C,C++,Java,Python,Ruby,Perl,Lisp,T-SQL,Clojure,Haskell,JavaScript。JavaScript中, / 可能是除号,也可能是正则表达式开头,处理方式类似于VB,字符串模板中也需要特殊处理 } ,还有自动插入分号规则。如 JSON,HTML,XAML,SQL,CSS,Lisp,Clojure,Haskell。VB中, < 可能是小于号,也可能是XML直接量的开始,取决于当前位置是否可以接受XML直接量。- if和while。- 在程序员的设备上。

2022-11-20 10:05:06 567

原创 node.js cxrf攻击

students.ejs代码。students.js代码。index.js代码。

2022-11-18 17:26:25 405

原创 node.js学习笔记 17session应用

index.js代码。

2022-11-18 17:18:04 353

原创 node.js学习笔记 16session简介

students.js代码。

2022-11-18 17:14:54 173

原创 node.js学习笔记 15cookie

router中students.js代码。

2022-11-18 17:05:44 105

原创 node.js学习笔记 14express应用之增删改查

students.json代码如下。student.ejs代码如下。update.ejs代码。

2022-11-18 16:54:13 393

原创 node.js学习笔记 13模板引擎ejs

【代码】node.js学习笔记 13模板引擎ejs。

2022-11-18 16:50:10 153

原创 node.js学习笔记 12express基础

express基础

2022-11-18 16:47:10 225

原创 node.js学习笔记 11HTTP

由于查询字符串会在浏览器地址栏直接显示,所以他安全性较差,同时,由于url地址长度有限制,所以get请求无法发送较大数据。3.服务器向客服端返回数据,收完了,可以断开连接(FIN(数据收完了),ACK(同意断开连接))1.客户端向服务器发送请求,通知服务器数据发送完毕,请求断开连接(FIN(表示数据发完了))2.服务器收到连接请求,向客服端返回消息(SYN(申请与客户端通信),ACK(表示同意))请求体的大小没有限制,可以发送任意大小的数据。2.服务器向客户端返回数据,知道了(ACK(表示知道了))

2022-11-18 16:43:13 425

原创 node.js学习笔记 10包管理器

yarn config set registry https://registry.npmmirror.com (配置镜像地址)pnpm config set registry https://registry.npmmirror.com (镜像配置)npm init -y 初始化项目,创建package.json文件(所有值采用默认值)npm install(i) 包名@">版本号" 安装比指定版本号高版本的包。npm install yarn -g (安装yarn包管理器)

2022-11-18 16:39:50 643

原创 node.js学习笔记 09核心模块

如果将一个相对路径作为参数,则resolve会自动将其转换为绝对路径,此时根据工作目录的不同,产生的绝对路径也不同。- tick队列中的代码,会在下一次事件循环之前执行,即会在微任务队列和宏任务队列中的任务之前执行。- 一般会将一个绝对路径作为第一个参数,一个相对路径作为第二个参数,这样他会自动计算出最终的路径。- 注意,我们通过不同的方法执行代码时,他的工作目录是有可能变化的。核心模块是node中自带的模块,可以在node中直接使用。window 是浏览器的宿主对象,node中是没有的。

2022-11-18 16:32:06 397

原创 node.js学习笔记 08CommonJS规范

在CommonJS中,如果省略了js文件扩展名,node会自动为文件补全扩展名,如果没有.js文件会寻找.json文件。在node中,默认支持的模块化规范叫CommonJS,在CommonJS中,一个js文件就是一个模块。- 当我们在其他模块中引入当前模块时,require函数返回的就是exports。- 使用require('模块的路径')函数来引入模块。在定义模块时,模块中的内容默认是不能被外部看到的。早期的网页中,是没有一个实质的模块化规范的。所有的CommonJS模块都会包装到一个函数中。

2022-11-11 17:28:13 371

原创 LeetCode(力扣)169 多数元素

给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。

2022-11-09 16:41:49 176 2

原创 node.js学习笔记 07async与await

如果async声明的函数中没有写await,那么他里面的代码就会依次执行(async返回值是Promise)虽然通过链式调用解决了回调地狱,但是还是不好看,想用同步的方式去调用异步的代码。在async声明的异步函数中可以使用await关键字来调用异步函数。异步函数的返回值会自动封装到一个Promise中返回。Promise解决了异步调用中的回调函数的问题。通过async可以快速的创建异步函数。

2022-11-09 15:00:35 356

原创 设计一个构造函数IntSet,包括属性 len(集合的长度)和集合web_set(存放元素),以及如下方法:

要求:定义两个整数集合{2,4,1,3,5}和{2,5,10},输出前者的元素个数以及它们进行集合的并、交、差运算。insert(val) 向集合中添加一个元素,重复的元素不能添加。getInt(index) 返回集合中位置index的元素。intersection(s2) 实现两个集合的交运算。difference(s2) 实现两个集合的差运算。union(s2) 实现两个集合的并运算。length() 返回集合的元素个数。disp() 输出集合的所有元素。

2022-11-08 20:47:46 117

原创 node.js学习笔记 06手写Promise

1.先把功能都分析清楚了,再动手。2.写一点想一点,走一步看一步。

2022-11-08 15:34:01 114

原创 node.js学习笔记 05宏任务与微任务

微任务队列(Promise的回调函数(then,catch,finally),相当于vip通道)- 当调用栈中的代码执行完毕后,任务队列中的代码才会按照顺序依次进入到调用栈中执行。- 宏任务队列(大部分代码都去宏任务队列中排队)queueMicrotask()用来向微任务队列中添加一个任务。- 调用栈中,放的是当前正在执行的代码。2.执行微任务队列中的所有任务。3.执行宏任务队列中的所有代码。- 任务队列中的是将要执行的代码。1.执行调用栈中的代码。- 在js中任务队列有2种。

2022-11-08 13:47:53 376

原创 bom思维导图

bom思维导图

2022-10-31 00:01:59 111

原创 LeetCode(力扣)19 删除链表倒数第N个节点

删除链表中的节点就是取消当前节点和上一个节点的引用。3.n2指针不指向null时让n1和n2同时前进一位。4.让n1指针所指的节点的next指向下下一个节点。可以让头节点跟普通节点一样进行处理。2.让第二个指针走比第一个指针先走n步。1.建立哑节点(虚拟节点,哨兵节点)5.返回哑节点的下一个节点。

2022-10-26 16:57:21 357

原创 node.js学习笔记 04Promise详解

这三个方法都会返回一个新的Promise 相当于后面加了 return new Promise()- Promise.any([...]) 返回一个执行最快的完成的Promise结果,只有都报错才报错。- Promise.race([...]) 返回一个执行最快的Promise结果,无论对错。但是由于Promise存取的方式的特殊,所以可以直接将异步调用的结果存储到Promise中。- Promise.resolve() 创建一个立即完成的Promise。Promise中会存储回调函数的返回值。

2022-10-25 18:17:35 278

原创 node.js学习笔记 03Promise介绍

当通过reject储存数据或出错时 Promise变为rejected(拒绝出错了)通过reject存储的数据或者出现异常时会调用第二个函数返回,可以在第二个函数中编写处理异常的代码。通过resolve存储的数据会调用第一个函数返回,可以在第一个函数中编写处理数据的代码。rejected(拒绝,出错了) 出错了或通过reject存储数据时。- then需要两个回调函数作为参数,回调函数用来获取Promise中的数据。catch()中的回调函数只会在Promise被拒绝时才会调用。

2022-10-25 18:13:17 387

原创 LeetCode(力扣)15 three sum 3数之和

4.如果数字不同,则设置start = i+1,end = length - 1,查看i,start和end三个数的和比零大还是小如果比0小那么start++,如果比0大,end--,如果等于零把这三个数都加入结果。3.如果当前的数字等于前一个数字,则跳过这个数。2.遍历数组从0遍历到length - 2。该题的难点就是去重,不仅需要在for循环开始时进行去重。防止下标越界,也是优化算法。还要在加入结果时去重。

2022-10-25 12:23:19 69

原创 LeetCode(力扣)680 验证回文字符2

大部分思路与125题一样,只不过多了一步。

2022-10-25 01:22:48 84

原创 LeetCode(力扣)125 验证回文字符串

4.建立一个while循环,当left < right时执行循环。5.当循环完成后如果没有返回false,如果有返回true。3.定义两个指针,一个在字符串开头,一个在字符串结尾。2.如果字符串长度小于2,返回true。1.使用正则表达式去掉非字母和非数字。

2022-10-25 01:21:04 137

原创 LeetCode(力扣)5 最长回文子串

3.创建一个helper function,判断左边和右边是否越界,同时最左边的字符是否等于最右边的字符.如果以上3个条件都满足则判断是否需要更新回文字符串最大长度及最大字符串的起始位置.然后将left--,right++,继续判断,直到不满足三个条件之一.2.定义两个变量,一个start储存当前找到的最大回文字符串的起始位置,另一个maxLength记录字符串的长度(终止位置就是start+maxLength)4.遍历字符串,每个位置调用helper function两遍,第一遍检查i-1,i+1;

2022-10-24 23:48:17 62

原创 判断字符串里面有多少个重复字符

用map的理由只有一个,那就是快。

2022-10-24 23:46:33 256

原创 数据结构学习笔记 哈希表(三) js封装哈希表

【代码】数据结构学习笔记 哈希表(三) js封装哈希表。

2022-10-24 15:17:17 607

原创 数据结构学习笔记 哈希表(二) 判断一个数是否是质数

【代码】数据结构学习笔记 哈希表(二) 判断一个数是否是质数。

2022-10-24 15:14:36 170

原创 快速排序 X 数组对象的应用 以下是某班级一次考试的成绩表。请计算每个学生总成绩,并按总成绩排名。找出各单科成绩第一名,输出其成绩与学号

以下是某班级一次考试的成绩表。请计算每个学生总成绩,并按总成绩排名。找出各单科成绩第一名,输出其成绩与学号。

2022-10-22 20:37:26 300

原创 随机选学员。从以下学员名单中随机选出4个学员:​ var arr = [“鹿晗”,”王俊凯”,”蔡徐坤”,”彭于晏”,”周杰伦”,”刘德华”,”赵本山”];​ 注意:不要有重复的学员

因为使用数组的话查询操作时间复杂度是O(N),用上for循环直接O(N^2)了,所以这道题要用Set结构来解,这道题的进阶版就是Google面试题和LeetCode1 两数相加。这道题一上来就用数组的同学会得到一句My grandmother runs faster than your code的评价。

2022-10-22 15:21:03 601

原创 数据结构学习笔记 哈希表(一) 哈希表基础与哈希函数

------HR:The first question is what you do if you have a conflict with your manager ?------You:Hashmap ! I'll use Hashmap !------HR:Hash ?Hash ?What ? Have you eaten so manyhash browns that your brain becomes into the potato?

2022-10-21 18:18:23 303

转载 数组遍历快慢

for...in...与for...of...效率都很低,forEach方法效率一般,具体详情参见最顶的文章。通过改大佬分析,普通for循环遍历方式比较快,其中用临时变量储存数组长度的方法速度是最快的,代码如下。JS 中的数组遍历方式效率比较 - KefeiGame - 博客园 (cnblogs.com)

2022-10-21 13:06:13 213

原创 js封装单向链表

【代码】js封装单向链表。

2022-10-20 11:41:40 236

原创 node.js学习笔记 02异步

Promise存储数据的方式比较特殊,这种特殊方式使得Promise可以用来存储异步调用的返回值。异步的函数无法使用return返回值,需要使用回调函数。- Promise是一个可以用来存储数据的对象。2.厨师做菜你去干别的事。- 通常情况代码都是自上而下一行一行执行的。- 前边的代码不执行后边的代码也不会执行。- 一行代码执行慢会影响到整个程序的执行。- 一段代码的执行不会影响其他其他的程序。- 同步的代码执行会出现阻塞的情况。1.不会阻塞其他代码的执行。- 基于回调函数的异步带来的问题。

2022-10-19 17:47:41 114

原创 node.js学习笔记 01node的简介与安装

安装指定版本的node lts(长期支持版本) latest(最新版)node.js只有ECMAscript,没有BOM和DOM。显示已安装的node版本。配置nvm的镜像服务器(阿里云)node.js和JavaScript有什么区别?nvm install 版本。- 单线程,异步,非阻塞。nvm use 版本。- 运行在服务器的js。

2022-10-19 17:44:30 157

原创 判断一个数是不是完数

完数指除自身之外所有约数之和等于他本身,被欧拉推导出公式:如果p是质数,且2^p-1也是质数,那么(2^p-1)X2^(p-1)便是一个完全数。例如p=5,是一个质数,2^p-1=31也是质数,(2^p-1)X2^(p-1) =31X16=496是完全数。例如p=3,是一个质数,2^p-1=7也是质数,(2^p-1)X2^(p-1) =7X4=28,是完全数。例如p=2,是一个质数,2^p-1=3也是质数,(2^p-1)X2^(p-1) =3X2=6,是完全数。

2022-10-19 17:33:23 2271

原创 LeetCode3 无重复字符串的最长子串

4.如果set里面有string[i],则从set里面删除string[j]并且递增j,再检查set里面是否有string[i],如此往复知道set里面没有string[i]为止。3.如果set结构里面没有string[i]那么将其添加到set里并更新maxLength的值。2.创建两个指针i和j,第一个指针i随循环遍历字符串,第二个指针j指向字符串第一个元素。5.重复3,4直到遍历完字符串。6.返回maxLength。

2022-10-19 12:20:11 46

原创 LeetCode(力扣)2两数相加

需要对链表有深入了解

2022-10-19 00:09:51 118

原创 力扣1两数之和

不会很正常,看不懂答案很正常,慢慢学慢慢看,看完思路自己手敲一遍代码,总能学会的.有的人娃都有了还不会快速排序,有的人孩子都十岁了还不会红黑树,这些东西难吗?确实难,但要说难到一辈子学不会那就太夸张了,认真学习,努力学习总能学会学懂的.毕竟了解真相才能获得真正的自由.

2022-10-18 22:13:05 90

空空如也

空空如也

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

TA关注的人

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