自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于使用tortoiseGit提交本地新建分支不成功的解决办法

*确认推送成功:**推送完成后,Git 应该会显示推送的结果。确保没有出现错误消息,并且分支已经成功推送到远程仓库。**切换到要推送的分支:**首先,确保你已经切换到了你想要推送的分支。假设你要推送的分支名为。**推送到远程仓库:**一旦你在要推送的分支上,使用。要将本地创建的分支推送到远程仓库,你可以使用。如果你想在远程仓库中使用不同的名称,可以将。推送到远程仓库并在远程仓库中命名为。命令推送到远程仓库。替换为你想要的名称。

2024-02-26 09:48:30 411

原创 数组去重方式总结

的集合数据结构,只会存储唯一的值。可以通过将数组转换为Set对象,然后再将Set对象转换回数组来实现去重。Array.from()将集合转换成数组。这些是常见的几种数组去重方式,根据具体的需求和场景,选择合适的方式来去除数组中的重复元素。1、使用Set对象:使用Set对象可以很方便地去除数组中的重复元素。在JavaScript中,有多种方式可以实现数组去重。

2023-10-23 15:10:03 126

原创 数组扁平化去并除其中重复部分数据

arr数组中包含有四层嵌套(最内层的嵌套数组共有三层),因此为了确保完全扁平化,需要设置参数为 4。对象是 ECMAScript 6 引入的一种新的数据结构,它可以用来存储一组唯一的值。最后,将得到的新数组赋值给变量 ,这个数组包含了原始多维数组中的所有不重复的元素。方法用于将一个类似数组或可迭代对象转换为一个新的数组。将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组。对象转换为一个新的数组,这个数组中的元素是。对象的好处是,它会自动去除重复的元素。是一个多维数组,它包含了一些元素。

2023-09-25 15:25:05 162

原创 栈问题[笔记]

3、循环字符串s,判断取出的字符是否是bracket的键(说明是左括号),如果是,将键对应的值推入stack栈;如果不是,弹出栈stack中的字符与当前字符进行比较,若不等则返回false。1、先创建一个对象bracket,以左括号为键,右括号为值;2、定义一个数组stack模拟栈。,判断字符串是否有效。

2023-09-07 10:30:42 113

原创 广度优先遍历(BFS)问题

请找出该二叉树中每一层的最大值。515. 在每个树行中找最大值。给定一棵二叉树的根节点。

2023-09-04 14:38:36 70

原创 24. 两两交换链表中的节点

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。函数,它接受一个链表的头节点作为参数,并返回交换相邻节点后的链表头节点。在函数内部,创建一个哑节点。指针指向传入的头节点。哑节点的作用是方便处理链表头部的交换情况。如果存在,将需要交换的两个节点分别保存为。接下来,我们进行节点的交换操作。类,用于表示链表的节点。指针,即为交换相邻节点后的链表头节点。属性表示指向下一个节点的指针。属性表示节点的值,以及一个。

2023-09-01 14:47:07 146

原创 滑动窗口问题【算法】

用来记录窗口中的字母出现的频率数。在此基础上,先尝试取窗口的右边界再右边一个位置的值,也就是。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。,允许左边界一直滑动到字符串的右界。,请你找出其中不含有重复字符的。请注意,你的答案必须是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。这需要用到一个新的变量。,所以其长度为 3。,所以其长度为 1。,所以其长度为 3。

2023-08-29 06:00:00 26

原创 【笔记】双指针问题

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。,那么可以把右指针左移一位,去试试更小一点的值,反之则把左指针右移。在这个过程中,不断更新全局的最小差值。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。先按照升序排序,然后分别从左往右依次选择一个基础点。),在基础点的右侧用双指针去不断的找最小的差值。来源:力扣(LeetCode)然后求此时的和,如果和大于。,和此时记录下来的和。

2023-08-28 14:53:23 38

原创 【笔记】两个数组的交集【算法】——js实现

是JavaScript中的一种数据结构,它可以用来存储键值对,并且可以根据键来快速查找对应的值。中是否存在当前数字,并且该数字的频次大于0。如果满足条件,说明该数字在。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。中已经存在该数字,则将其对应的频次加1;否则,将该数字添加到。中都存在,并且还没有被完全匹配。首先,我们创建了一个空的。数组中,并将其对应的频次减1。来源:力扣(LeetCode)数组,对于每个数字,如果。在示例代码中,我们使用。中,并设置其频次为1。

2023-08-24 15:21:50 172

原创 我的笔记--promise相关用法

宏任务先执行然后在执行同步代码中的微任务,

2023-07-20 10:17:38 34

原创 JSON 序列化和反序列化实现深拷贝的原理

需要注意的是,使用 JSON 序列化和反序列化实现深拷贝时,只有那些可以被 JSON 序列化为字符串的属性才能够被复制。如果对象中包含了特殊类型的属性,例如函数、日期等,那么序列化后的值就可能会失去原来的类型信息,从而无法被正确地反序列化回来。在 JavaScript 中,我们可以将一个对象序列化为字符串,然后再将其反序列化为新的对象。在这个过程中,JavaScript 引擎会解析序列化后的字符串,并根据其中的信息动态地生成一个新的对象。可以看到,序列化后的字符串包含了整个对象的属性和值。

2023-06-11 10:42:29 589

原创 swiper的使用以及this.$nextTick() 介绍

1. 在模板中,使用了Swiper库提供的HTML结构,包括swiper-container、swiper-wrapper、swiper-slide、swiper-pagination、swiper-button-prev和swiper-button-next等元素。每当 Vue 实例进行数据改变时,Vue.js 会开启一次异步更新,把需要修改的内容放到一个队列中,统一触发,更新结束后通过 $nextTick() 方法执行回调函数。5. 最后,样式部分为空,因为Swiper库已经提供了默认的样式。

2023-05-05 12:00:00 206

原创 三、项目中vuex的使用

该模块最终会被导出,可以在其他组件中通过 $store.state.goodInfo、$store.commit('GETGOODINFO', data)、$store.dispatch('getGoodInfo', skuid) 和 $store.getters.categoryView 等方式来访问和修改 Vuex 中的数据。这段代码是使用Vue框架中的Vuex插件来创建一个全局的数据存储仓库,其中包含了多个小的仓库模块,用于存储不同的数据和状态。5、可以在需要获取数据的组件中通知服务器,发起请求。

2023-05-04 12:30:00 85

原创 二、项目构建之发送请求以及跨域问题

具体来说,它的作用是将以 "/api" 开头的请求代理到目标地址为 "http://xxx.xxx.com" 的服务器上,从而实现跨域访问。注释掉的 pathRewrite 可以用于重写路径,将 "/api" 替换为空字符串,这样代理后的请求路径就不再包含 "/api"。跨域问题指的是在浏览器中,当一个网页通过 Ajax、WebSocket 或者其他方式向不同源(协议、域名、端口号任意一项不同)的服务器发送请求时,会受到同源策略的限制,从而不能得到服务器返回的数据或者执行对应的操作。

2023-05-03 17:30:00 40

原创 一、项目构建之axios的二次封装

3. 使用响应拦截器,对响应结果进行处理,成功响应时返回响应数据,失败响应时返回一个 Promise.reject() 对象。总结:该代码是一个封装了 Axios 的请求模块,主要功能是发送 HTTP 请求并返回响应结果。3、在项目中一般是在src下新建api文件,在该文件下新建axios.js,文件中的内容如下。2. 使用请求拦截器,在发送请求前对请求进行一些自定义处理,比如添加请求头、修改请求参数等。可以在发送请求之前进行一些业务的处理,服务器返回数据也可以进行一些处理。

2023-05-03 12:00:00 127

原创 vue路由的简单使用

2、 在项目中新建一个router文件,再在该文件下建一个index.js文件用于配置路由。1、使用命令 npm install vue-router 导入路由。3、在入口文件main.js 中引入并使用。4、确定路由组件展示的地方。如果要在app.vue中显示。在index.js中。

2023-05-02 19:52:38 44

原创 grid布局与flex布局之间的孰是孰非?

如果只是简单的列表、导航菜单之类的布局,选择 Flex 布局足够了。如果需要更加复杂的布局,比如网格式布局、多栏排版等,则建议选择 Grid 布局。,适用于比较简单的布局场景,如导航菜单、列表排列等,特别是在移动端布局中表现更加优秀。,适用于比较复杂的布局场景,如网格布局、多栏排版等,它可以划分出不同区块,进行更加精细的布局,具有高度自适应性和可读性,且在处理大量信息和多种布局的时候表现比较优秀。Flex 布局和 Grid 布局都是现代 CSS 布局方式中非常流行的两种,可以根据不同的需求进行使用。

2023-04-26 15:09:17 1376

原创 笔记之vue实现登录与注册功能

else {next()})state: {user: null},},actions: {},},})<template></div><script></script>现在运行 `npm run serve` 启动项目,即可访问 http://localhost:8080 进行登录注册操作。

2023-04-12 10:17:24 3526

转载 忍者代码-代码风格

使用一个不寻常的变量多酷啊,尤其是在长达 1-2 页(如果可以的话,你可以写得更长)的循环体中使用的时候。一个直觉较弱的人必须逐行分析代码,跟踪每个代码分支中的更改。聪明的忍者会在代码的一个地方使用下划线,然后在其他地方刻意避免使用它们。阅读代码的人可能需要耗费一到两个小时的带薪工作时间,冥思苦想来寻找一个隐藏的含义。只有具有真正良好直觉的人,才能够理解这样的命名。的函数改变了某些东西的时候,他脸上肯定是一脸懵逼的表情 — 这会扩大你的理性界限。的值是什么的开发者们,就会有一个“快活的”的时光了。

2023-04-04 11:37:27 491

原创 学习笔记之apply和call区别

在这个例子中,我们定义了一个greet()函数,然后通过call方法将它的上下文设置为person对象,并且传入了一个参数"Hi"。最终输出了"Hi, Bob!在这个例子中,我们定义了一个greet()函数,然后通过apply方法将它的上下文设置为person对象,最终输出了"Hello, Alice!apply和call都是用来改变函数执行时的上下文(context)的。其中,apply接收一个数组作为参数,而call接收一系列参数。总的来说,apply和call的作用是相同的,只是传参的方式不同。

2023-03-29 22:38:04 58

原创 学习笔记之node创建express微服务器,并进行简单部署

如果服务器在局域网中,需要在路由器中进行端口转发,将外部主机的请求转发到内部服务器的3000端口。在部署到Express服务器的项目中,如果不对服务器进行任何配置,只能在本机上访问,其他主机是无法访问的。需要注意的是,如果Vue项目中使用了路由,需要在服务器中配置相应的路由,才能让用户访问到所有页面。需要注意的是,对于生产环境下的服务器,还需要进行一些安全性的设置,以确保服务器的安全。最后监听3000端口并输出日志。这段代码创建了一个express应用程序,将dist文件夹中的文件作为静态文件进行服务。

2023-03-28 11:38:51 872

原创 学习笔记之apply方法

作为函数执行时的参数列表传递进去。这是JavaScript中的一种常用的调用函数的方式。这样就可以在不改变函数本身的情况下,指定函数执行时的上下文和参数。方法接受两个参数:第一个参数是要作为函数上下文的对象,即函数执行时的。第二个参数是一个数组,包含了作为函数参数传递的值。是函数执行时的上下文,即防抖函数调用时的。作为函数执行时的上下文(即。例如,如果我们有一个。

2023-03-25 19:32:36 394

原创 import时加{}与不加的区别

语句),则必须使用花括号来指定导入的变量或函数。如果导入的模块有默认导出,则可以使用不加花括号的语法来导入整个模块对象。加上花括号:只导入模块中的指定变量或函数。需要注意的是,如果导入的模块没有默认导出(即没有。不加花括号:导入整个模块对象。在JavaScript中,使用。语句导入模块时,加上花括号。

2023-03-24 10:38:05 2960

转载 错误调试-debugger

因此如果我们的脚本因为错误挂掉的时候,我们可以打开调试器,启用这个选项然后重载页面,查看一下哪里导致它挂掉了和当时的上下文是什么。继续执行当前函数内的剩余代码,并暂停在调用当前函数的下一行代码处。如果我们对比一下,“下一步(Step)”命令会进入嵌套函数调用并在其第一行暂停执行,而“跨步(Step over)”对我们不可见地执行嵌套函数调用,跳过了函数内部。在代码中的某一行上右键,在显示的关联菜单(context menu)中点击一个非常有用的名为 “Continue to here” 的选项。

2023-03-17 10:08:33 1368

原创 mock工具

除了 Mock 功能,还集合了 API 管理和测试功能,还可以通过插件广场帮助你将 API 发布到各个应用平台,比如发布到网关上完成 API 上线,或者和低代码平台结合,将 API 快速变成低代码平台中可使用的组件等。

2023-03-16 10:34:00 94

原创 前端之函数防抖

函数防抖是一种常用的前端技术,用于限制在短时间内频繁触发某个函数的情况。在函数防抖的实现中,只有在特定的时间间隔内没有触发该函数时,才会执行该函数。这个时间间隔可以通过开发者自己设定,通常是数百毫秒或更长。函数防抖的主要目的是减少不必要的代码执行,优化网页性能,提高用户体验。在实际使用中,函数防抖通常用于以下情况:1.输入框自动补全:防止频繁的输入字符导致自动补全不稳定。2.窗口大小改变事件:防止频繁的窗口大小改变导致不必要的重绘。3.页面滚动事件:防止频繁的滚动事件阻塞浏览器。下面是一

2023-03-07 00:07:46 456

原创 include的用法之求两个json类型数组的差集

前端中include主要用于在一个数组中查找是否包含某个元素。它的语法格式如下:array.includes(element)其中,array为需要查找的数组,element为需要查找的元素。要求两个json类型数组的差集,可以使用Array.filter()方法、Array.includes()方法和JSON.stringify()方法。示例代码如下:---javascriptlet arr1 = [ { "id": 1, "name": "A" }, { "id": 2,

2023-03-02 22:14:28 498

原创 awit的使用

await是异步编程中的关键字,用于等待一个异步操作的结果。它通常与async函数一起使用。例如,以下是一个使用Promise获取数据的示例,我们使用await等待Promise对象返回的结果:async function fetchData() { const response = await fetch('https://jsonplaceholder.typicode.com/users'); const data = await response.json(); return

2023-03-02 22:00:42 405

原创 前端中的json

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于读写,也易于人们阅读。它也有助于在web浏览器和服务器之间传输数据。下面是一个JSON示例:{"name": "John Doe","age": 25,"address": {"street": "123 Main Street","city": "New York","state": "NY"}}json型数据转对象const json = { a: 1, b: 2}

2023-02-28 23:36:41 165

原创 前端中的本地存储与缓存

1、本地存储本地存储指的是在客户端(浏览器)中保存数据的一种技术,可以在后续访问中读取,而不必重新向服务器提交请求。举例:使用 HTML5 提供的 LocalStorage API 进行本地存储:使用 HTML5 提供的 LocalStorage API 进行本地存储:// 写入 'name': 'John'localStorage.setItem('name', 'John'); // 读取let name = localStorage.getItem('name');co

2023-02-28 23:18:54 434

原创 前端中的序列化与反序列化

1、序列化序列化是指将数据、对象等按一定格式转换成字符串的过程。举例:let person = { name: 'John', age: 25};//序列化let personString = JSON.stringify(person);console.log(personString); //"{"name":"John","age":25}"let person = { name:2、反序列化反序列化是一种把字符串(结构化的数据)转换成对应的数据

2023-02-28 23:10:22 976

原创 前端中的深拷贝与浅拷贝

1、浅拷贝浅拷贝就是拷贝的只是原始对象的属性指向的地址,只是把地址复制了一份。当原始对象的属性指向的地址的内容被修改的时候,克隆的对象的属性的内容也会随之改变。例如:var obj = {name: "John"};var clone = Object.assign({}, obj); //浅拷贝obj.name = "David";console.log(clone.name); //David// 浅拷贝const shallowCopy = (source) =

2023-02-28 22:59:39 229 2

空空如也

空空如也

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

TA关注的人

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