- 博客(44)
- 收藏
- 关注
原创 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学习笔记 14express应用之增删改查
students.json代码如下。student.ejs代码如下。update.ejs代码。
2022-11-18 16:54:13
393
原创 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学习笔记 05宏任务与微任务
微任务队列(Promise的回调函数(then,catch,finally),相当于vip通道)- 当调用栈中的代码执行完毕后,任务队列中的代码才会按照顺序依次进入到调用栈中执行。- 宏任务队列(大部分代码都去宏任务队列中排队)queueMicrotask()用来向微任务队列中添加一个任务。- 调用栈中,放的是当前正在执行的代码。2.执行微任务队列中的所有任务。3.执行宏任务队列中的所有代码。- 任务队列中的是将要执行的代码。1.执行调用栈中的代码。- 在js中任务队列有2种。
2022-11-08 13:47:53
376
原创 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(力扣)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
原创 快速排序 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
原创 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
原创 力扣1两数之和
不会很正常,看不懂答案很正常,慢慢学慢慢看,看完思路自己手敲一遍代码,总能学会的.有的人娃都有了还不会快速排序,有的人孩子都十岁了还不会红黑树,这些东西难吗?确实难,但要说难到一辈子学不会那就太夸张了,认真学习,努力学习总能学会学懂的.毕竟了解真相才能获得真正的自由.
2022-10-18 22:13:05
90
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人