- 博客(41)
- 收藏
- 关注
原创 JavaScript高级程序设计基础(十三)
3. 查找速度,与插入不同,从大型Object和Map中查找键/值对的性能差异极小,但如果只包含少量键/值对, 则Object 有时候速度更快。这对Map来说是不可能的。1. 内存占用 ,Object 和Map 的工程级实现在不同浏览器间存在明显差异,不同浏览器的情况不同,但给定固定大小的内存,Map大约可以比Object多存储50%的键/值对。初始化之后,可以使用set()方法再添加键/值对,另外,可以使用get()和has()进行查询,还可以使用delete()和clear()删除值。
2025-01-12 21:21:57
433
原创 JavaScript高级程序设计基础(十二)
为此,sort()方法可以接收一个比较函数,用于判断哪个值应该排在前面。默认情况下,sort()会按照升序重新排列数组元素,即最小的值在前面,最大的值在后面。为此, sort()会在每一项上调用String()转型函数,然后。接下来,方法slice()用于创建一个包含原有数组中一个或多个元素的新数组。打平数组参数的行为可以重写,方法是在参数数组上指定一个特殊的符号:Symbol.isConcat- Spreadable。注意 reverse()和sort()都返回调用它们的数组的引用。
2025-01-02 15:32:27
1154
原创 JavaScript高级程序设计基础(十一)
如果想要修改对象的值可以用点语法,如object.name="123",如果属性名含有可能会导致语法错误的字符,可以使用中括号,如object["my name"]="123"。如果数组中某一项是null或undefined,则在join()、toLocaleString()、 toString()和 valueOf()返回的结果中会以空字符串表示。keys()返回数组索引的迭代器,values()返回数组元素的迭代器,而 entries()返回索引/值对的迭代器。
2024-12-29 16:00:18
738
原创 JavaScript高级程序设计基础(十)
与encodeURI()和encodeURIComponent()相对的是 decodeURI()和decodeURIComponent()。Math对象上提供的计算要比直接在JavaScript实现的快得多,因为Math对象上的 计算使用了JavaScript引擎中更高效的实现和处理器指令。在全局作用域中定义的变量和函数都会变成Global对象的属性,例如isNaN()、isFinite()、parseInt()和 parseFloat()min()和max()方法用于确定一组数值中的最小值和最大值。
2024-12-26 11:42:25
912
原创 JavaScript高级程序设计基础(九)
startsWith()检查开始于索引 0的匹配项,endsWith()检查开始于索 引(string.length - substring.length)的匹配项,而includes()检查整个字符串。endsWith()方法接收可选的第二个参数,表示应该当作字符串末尾的位置。indexOf()方法 从字符串开头开始查找子字符串,而lastIndexOf()方法从字符串末尾开始查找子字符串。slice()和substring(),第一个参数表示子字符串开始的位置,第二个参数表示子字符串结束的位置。
2024-12-24 16:08:57
850
原创 JavaScript高级程序设计基础(八)
如果没找到匹配项,则返回 null。这个数组的第一个元素是匹配整个模式的字符串, 其他元素是与表达式中的捕获组匹配的字符串。每当用到某个原始值的方法或属性时,后台都会创建一个相应原始包装类型的对象,从而暴露出操作原始值的各种方法。在通过new实例化引用类型后,得到的实例会在离开作用域时被销毁,而自动创建的原始值包装对象则只存在于访问它的那行代码执行期间。在这个例子中,模式包含两个捕获组:最内部的匹配项" and baby",以及外部的匹配项" and dad" 或" and dad and baby"
2024-12-15 09:45:00
728
原创 JavaScript高级程序设计基础(七)
垃圾回收程序运行的时候,会标记内存中存储的所有变量(记住,标记方法有很多种)。然后,它会将所有在上下文中的变量,以及被在上下文中的变量引用的变量的标记去掉。在此之后再被加上标记的变量就是待删除的了,原因是任何在上下文中的变量都访问不到它们了。由于JavaScript数组的大小是动态可变的,如果删除大小为100的数组,再创建一个新的大小为 200 的数组。const和let都以块(而非函数)为作用域,所以相比于使用var,使用这两个新关键字可能会更早地让垃圾回收程序介入,尽早回收应该回收的内存。
2024-12-10 10:45:00
624
原创 JavaScript高级程序设计基础(六)
首先传入函数的参数obj指向person地址,然后改变person地址的name为Nicholas,接着obj重新指向另一个本地对象,并将新的本地对象的name定义为Greg,最后函数结束,这个本地对象也消亡了。如果是原始值,那么就跟原始值变量的复制一样,如果是引用值,那么就跟引用值变量的复制一样。在把引用值从一个变量赋给另一个变量时,这里复制的值实际上是一个指针,它指向存储在堆内存中的对象,两个变量实际上指向同一个对象。作用域链最前端的始终是正在执行上下文的变量对象,最后的始终是全局上下文的变量对象;
2024-12-05 11:16:24
934
原创 JavaScript高级程序设计基础(五)
需要注意的是,在判断条件里会自动调用Boolean();并且在执行语句里尽管只有一个语句也建议使用语句块。初始化、条件表达式和循环后表达式都不是必需的。注意for-in里推荐使用const声明遍历对象,但for循环无法使用const声明而推荐使用let。ECMAScript 中对象的属性是无序的,因此。语句在比较每个条件的值时会使用全等操作符,因此不会强制转换数据类。循环经常用于这种情形:循环体内代码在退出前至少要执行一次。,就是因为每个条件的表达式都会返回布尔值。语句不能保证返回对象属性的顺序。
2024-11-25 14:14:00
580
原创 JavaScript高级程序设计基础(四)
需要注意的是当不是数值的进行比较会先将其转化为数值,而字符串则会逐个比较字符串中对应字符的编码(并非根据首字母大小,而是根据字母本身的编码数值)当进行逻辑与、或时如果第一个判断条件已经可以得出结果,那么将不会进行第二个判断条件:即便第二个判断条件会报错,但只要第一个判断条件能得出结果,整个判断语句就不会报错。全等和不全等操作符与相等和不相等操作符类似,只不过它们在比较相等时不转换操作数。对于字符串,如果是有效的数值形式,则转换为数值再应用改变。对于字符串,如果不是有效的数值形式,则将变量的值设置为。
2024-11-13 22:08:16
924
原创 JavaScript高级程序设计基础(三)
模板字面量在定义时立即求值并转换为字符串实例,任何插入的变量也会从它们最接近的作。某个变量中的字符串值,必须先销毁原始的字符串,然后将包含新值的另一个字符串保存到该变量。技术上讲,模板字面量不是字符串,而是一种特殊的 JavaScript。所有插入的值都会使用 toString()强制转型为字符串,toString()通过传入参数,得到对应参数的进制字符串。),一旦创建,它们的值就不能变了。 3.模板字面量。句法表达式,只不过求值后得到的是字符串。中的字符串是不可变的(
2024-11-06 15:26:25
931
原创 vue项目中使用drive.js元素未定位成功
在使用drive.js时,button我设了一个id。只要在mounted设置setTimeout即可。但是在使用时却定位失败。
2024-10-09 10:14:21
563
原创 JavaScript高级程序设计基础(二)
本文包含部分js语言基础,包括但不仅限于,var,const,let,以及在实际情况中使用的优先级,以及几大基本类型的介绍
2024-09-11 21:34:23
1151
原创 JavaScript高级程序设计基础(一)
ECMAScript 只是对实现这个规范描述的所有方面的一门语言的称呼,Web浏览器只是ECMAScript实现可能存在的一种宿主环境DOM通过创建表示文档的树,让开发者可以随心所欲地控制网页的内容和结构。使用DOM API可以轻松地删除、添加、替换、修改节点BOM用于支持访问和操作浏览器的窗口。
2024-08-30 17:43:14
625
原创 You are running Vue in development mode.和undefined is not iterable白屏问题
但是我是关闭了的Vue.config.productionTip = false。确保在部署生产环境时打开生产模式。你正在开发模式下运行 Vue。遇到的报错信息如下,最后发现是服务器问题。
2024-07-15 16:17:36
427
原创 计算机系统基础(三)
机器指令与汇编指令意义对应,都是机器级指令如:M[R[bx]+R[di]-6]←R[cl]R:寄存器内容M:存储单元内容根据计算机系统基础(一),我们知道预处理,编译,汇编,链接四个步骤。接下来讲讲反汇编,即将机器代码反汇编为汇编代码。
2024-07-03 16:28:13
1176
原创 js数组for循环只获取到数组最后一项问题原因
这是我的源代码,将arr里的数组提取value和name到obj的对象中,再将obj添加到departmentPeople新数组里。可以看到push进去的全是arr数组里的最后一个元素。后来我把obj放到for循环里。
2024-04-07 20:35:19
1082
原创 vue3讲代理对象转化为普通对象
如果直接打印代理对象的值则会报undefined,所以这里需要我们将代理对象转化为原始对象。打印obj就会发现不是代理对象啦。
2024-03-13 16:29:18
3555
1
原创 vue3的el-upload后端带参数上传文件
也就是说这里我们需要生成一个formdata。onchange是会返回一个file的,打印一下,就知道这里真正的数据是raw.(formData是一个键值对,append则是添加一个键值对,file是key,file.raw是value)首先如果你是后端带参数则不能使用element-ui的action,这里我使用的on-change。我们再来看后端的参数格式。
2024-03-12 21:30:22
1409
1
原创 【蓝桥杯集训】Acwing1249.亲戚
并查集,将有关系的群体融合在一起。为有关系的亲戚设立一个“头头”,如果你的“头头”和我的“头头”一样,则说明我们是一家人。假如给的条件中发现两个头头不同的人也是一家人,那就让其中一家人的头头认另一家的头头为新的头头。
2024-03-05 20:45:37
507
1
原创 解决vue:Failed to convert value of type ‘java.lang.String‘ to required type ‘java.lang.Long
【代码】解决vue:Failed to convert value of type ‘java.lang.String‘ to required type ‘java.lang.Long。
2024-03-04 08:44:21
938
1
原创 插槽里的组件无法显示
匿名插槽在组件里只能有一个,而具名插槽可以有多个。发现是忘了slot的一个特性。这是我之前的出错代码,运行结果是无法显示。所以只需要将第二个设置为具名插槽就可以了。v-slot:name等效于#name。
2024-02-23 20:36:06
859
1
原创 计算机网络系列学习(五)应用层
用来把人们使用的机器名字(域名)转换为 IP 地址域名采用层次树状结构的命名方法:www.myschool.eduDNS 是一个联机分布式数据库系统,采用客户服务器方式。域名到 IP 地址的解析是由若干个域名服务器程序共同完成文件传送协议 FTP :提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限,屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件文件共享协议文件传送协议:FTP, TFTP复制整个文件。对文件副本进行访问。
2024-01-11 15:01:26
1035
1
原创 计算机网络系列学习(四)传输层
运输层的作用为应用层进程之间的通信提供服务屏蔽作用运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道可靠信道与不可靠信道全双工可靠信道:面向连接的协议,TCP不可靠信道:无连接的协议,UDP特点:简单方便,但不可靠无连接。发送数据之前不需要建立连接。使用尽最大努力交付。即不保证可靠交付。面向报文。UDP 一次传送和交付一个完整的报文。没有拥塞控制。
2024-01-08 17:27:01
1201
原创 计算机网络系列学习(三)网络层
当互联网上的主机进行通信时,就好像在一个网络上通信一样,看不见互连的各具体的网络异构细节。在BGP属性里有一个叫本地偏好的选项,意思是从本AS开始的、到同一个前缀的不同BGP路由中,挑选一个较好的(即偏好值最高的)路由,这可由路由器管理员或网络管理员根据政治或经济上的策略来设置。具有多个接口的路由器有多个 IP 地址,BGP ID 就使用该路由器的 IP 地址中数值最大的一个。(3) 若存储器的带宽(读或写)为每秒 M 个分组,那么路由器的交换速率(即分组从输入端口传送到输出端口的速率)一定小于 M/2。
2024-01-02 15:45:37
2297
原创 计算机网络系列学习(二)数据链路层
即:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”,即:“凡是接收端数据链路层接受的帧均无差错”当很多短帧要发送时,第 1 个短帧采用载波延伸方法进行填充,随后的一些短帧则可一个接一个地发送,只需留有必要的帧间最小间隔即可。每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的计算机是属于哪一个 VLAN。当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节。
2023-12-28 17:37:18
1093
1
原创 计算机网络系列学习(一)概述
计算机网络由若干节点(node)和连接这些节点的链路(link)组成互连网多个网络通过一些路由器相互连接起来,构成了一个覆盖范围更大的计算机网络网络与互连网网络:把许多计算机连接在一起。互连网:把许多网络通过一些路由器连接在一起。与网络相连的计算机常称为主机。互连网 (internet) ≠ 互联网 (Internet)可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
2023-12-23 10:19:51
1020
1
原创 快速入门SASS
快速入门SASS,介绍了sass最基本部分,轻松地使用sass编写清晰、无冗余、语义化的css。对于sass提供的工具你已经有了一个了解
2023-11-24 15:08:24
126
1
原创 gitHub在VScode的使用和相关问题(gitee大部分同样适用!)
github基础命令如远程仓库实施文件的推送和拉取,本地分支与远程分支相关联等等,以及可能会遇见的问题,实时更新
2023-10-26 16:38:33
685
1
原创 【蓝桥杯集训】Acwing 1460 我在哪儿
每个邮箱的颜色用 A..Z之间的一个字母来指定,所以沿着道路的 N个邮箱的序列可以用一个长为 N的由字母 A..Z 组成的字符串来表示。最小可行的 K 的值为 K=4,因为如果他查看任意连续 44 个邮箱,那么可得到的连续颜色序列可以唯一确定他在道路上的位置。然而,每个农场都沿路设有一个彩色的邮箱,所以约翰希望能够通过查看最近的几个邮箱的颜色来唯一确定他所在的位置。约翰想要知道最小的 K 的值,使得他查看任意连续 K个邮箱序列,他都可以唯一确定这一序列在道路上的位置。约翰不能令 K=3,因为如果他看到了。
2023-09-19 20:14:22
108
原创 【蓝桥杯集训】Acwing3729. 改变数组元素
由这题不难想到,设整数数组为arr,若arr[i]为m (0i+1,则是V[i]到V[0]为1。s代表填充的内存块,c为填充值,n表示填充的个数(本题实例中(num+1)*4代表填充num+1,乘4则是因为int的4个字节)如果一个数组arr1的大小为n,想要对其下标a~b进行批量加k的操作。每组数据输出一行结果,表示所有操作完成后的数组 V,数组内元素之间用空格隔开。V数组里只有0和1,如果使用差分会出现超过1的情况,所以需要使用!
2023-09-16 19:52:58
178
1
原创 【蓝桥杯集训】Acwing 3956.截断数组
简单分析截断数组,从头一步一步解决难点。题目给定一个长度为 n的数组 a1,a2,…,an。现在,要将该数组从中间截断,得到三个子数组。要求,三个子数组内各元素之和都相等。请问,共有多少种不同的截断方法?
2023-09-13 21:03:55
146
原创 【蓝桥杯集训】Acwing 1497. 树的遍历
分别建立一个左子树与右子树的map,其中键为当下节点的数据,值为指向下一个节点的数据。后序遍历的最后一个值指向根节点,而中序遍历可以根据已知结点分出左子树和右子树。通过队列的储存,循环读取头节点,并且移除头节点.记录头节点指向的下一个结点。利用中序遍历和后序遍历的特点,分别判断节点的左右位置,父节点。思路很简单,根据中序遍历和后序遍历写出层序遍历。现在给出它的后序遍历和中序遍历,请你输出它的层序遍历。个整数,表示二叉树的后序遍历。个整数,表示二叉树的层序遍历。个整数,表示二叉树的中序遍历。
2023-03-08 21:35:59
214
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅