自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CSS---关于 font: 15px/1.5 和 font: 15px/15px 的区别

表示字体大小是15px,行间距是1.5em(即行间距是字体大小的1.5倍:15px × 1.5 = 22.5px)。②font: 15px/15px "宋体" ......;①font:15px/1.5 "宋体" ......;表示字体大小是15px,行间距也是15px。

2024-06-28 16:15:55 86

原创 localstorage和sessionstorage的区别

localStorage 和 sessionStorage 是 HTML5 提供的两种在客户端存储数据的方式,它们都可以在浏览器端存储数据,不同之处在于数据的生命周期和作用域。localStoragelocalStorage 用于长期保存整个网站的数据,保存的数据没有过期时间,直到手动删除。 数据存储在客户端,不会被发送到服务器端。 可以通过 JavaScript 的 localStorage 对象进行读取和写入操作。 存储的数据是以键值对的形式存储的。sessionStorageses

2024-04-22 15:46:42 282

原创 JavaScript 去重方法

JavaScript 中去重的方法有多种,可以根据数据类型和场景选择不同的方法。

2024-04-17 09:34:00 228

原创 vue3中setup函数的理解

函数在 Vue 3 中承担了设置组件状态、处理生命周期钩子、处理事件等任务,使得组件的逻辑更加清晰、灵活,并且提高了代码的可维护性和可复用性。函数是用于设置组件的配置和状态的地方。它是组件内部的一个新特性,用于替代 Vue 2.x 中的。在 Vue 3 中,

2024-04-15 16:44:45 564 1

原创 LeetCode 28.找出字符串中第一个匹配项的下标。(通过JavaScript实现)

startsWith() :用于检测字符串是否以指定的子字符串开始,是返回true,否则返回false(该方法会区分大小写)。"leeto" 没有在 "leetcode" 中出现,所以返回 -1。字符串的第一个匹配项的下标(下标从 0 开始)。第一个匹配项的下标是 0 ,所以返回 0。"sad" 在下标 0 和 6 处匹配。

2024-03-31 07:35:44 154

原创 LeetCode 2908. 元素和最小的山形三元组 I。(通过JavaScript实现)

这个三元组的元素和等于 nums[1] + nums[3] + nums[5] = 13。可以证明不存在元素和小于 13 的山形三元组。这个三元组的元素和等于 nums[2] + nums[3] + nums[4] = 9。可以证明不存在元素和小于 9 的山形三元组。- nums[2] < nums[3] 且 nums[4] < nums[3]- nums[1] < nums[3] 且 nums[5] < nums[3]可以证明 nums 中不存在山形三元组。如果不存在满足条件的三元组,返回。

2024-03-29 11:35:55 297

原创 LeetCode 2864. 最大二进制奇数。(通过JavaScript实现)

console.log( str.repeat(2)) ===> 输出的结果是"testtest"其中一个 '1' 必须出现在最后一位上。而由剩下的数字可以生产的最大数字是 "100"。所以答案是 "1001"。因为字符串 s 中仅有一个 '1' ,其必须出现在最后一位上。所以答案是 "001"。以字符串形式,表示并返回可以由给定组合生成的最大二进制奇数。字符串中的位,使得到的二进制数字是可以由该组合生成的。例如:let str = "test":用于字符串复制指定次数的方法。

2024-03-13 11:14:43 485

原创 LeetCode 1. 两数之和。(通过JavaScript实现)

哈希表(Hash table),也称为哈希映射(Hash map)或关联数组(Associative array),是一种用于存储键值对的数据结构。它通过将键映射到数组中的一个位置来实现快速的查找操作。遍历数组,对于每个元素,检查目标值与当前元素的差值是否在哈希表中存在,如果存在,则返回两个元素的下标。对象可以看作是一种哈希表的实现,虽然实现细节不可见,但底层仍然会使用哈希函数来确定数组中元素的存储位置。但是,数组中同一个元素在答案里不能重复出现。整数,并返回它们的数组下标。,请你在该数组中找出。

2024-03-08 11:34:03 545

原创 LeetCode 26. 删除有序数组中的重复项。(通过JavaScript实现)

的前五个元素被修改为 0, 1, 2, 3, 4。不需要考虑数组中超出新长度后面的元素。// 长度正确的期望答案。的前两个元素被修改为 1, 2。不需要考虑数组中超出新长度后面的元素。函数应该返回新的长度 5, 并且原数组。如果所有断言都通过,那么您的题解将被。函数应该返回新的长度 2,并且原数组。,返回删除后数组的新长度。删除重复出现的元素,使每个元素。

2024-03-08 11:13:21 439

原创 LeetCode 2917. 返回 nums 的 K-or 值。(通过JavaScript实现)

因为 k == 6 == nums.length ,所以数组的 6-or 等于其中所有元素按位与运算的结果。因此,答案为 2^0 + 2^3 = 9。nums[1]、nums[2]、nums[3]、nums[4] 和 nums[5] 的第 3 位的值为 1。nums[0]、nums[2]、nums[4] 和 nums[5] 的第 0 位的值为 1。nums[0]、nums[1] 和 nums[5] 的第 2 位的值为 1。nums[0] 和 nums[5] 的第 1 位的值为 1。

2024-03-06 16:05:58 348

原创 安装nvmw工具时遇到npm ERR! code CERT_HAS_EXPIRED报错解决方法

在尝试使用npm(Node.js包管理器)安装或更新包时,因为npm服务器的SSL证书已过期,遇到的问题如下图:解决方法。

2024-03-04 16:16:22 598

原创 【Vue3+Ts项目】硅谷甄选 — 菜单权限+按钮权限

/ 获取对应的用户仓库// 全局自定义指令:实现按钮的权限// 代表使用这个全局指令的DOM|组件挂载完毕的时候会执行一次// 自定义指令右侧的数值:如果在用户信息buttons数组中没有// 从DOM树上干掉if (!},})在main.ts文件中引入自定义指令文件// 引入自定义指令文件PS:此处以其中一个按钮作为例子,项目中其他按钮的权限都需要配置。

2024-01-19 15:30:39 1019 2

原创 【Vue3+Ts项目】硅谷甄选 — 用户管理+角色管理+菜单管理+首页

/账号信息的ts类型//代表一个账号信息的ts类型id?: string//数组包含全部的用户信息//获取全部用户信息接口返回的数据ts类型data: {//代表一个职位的ts类型id?: string。

2024-01-12 15:33:49 869

原创 javascript数组方法----reduce

累积器函数执行用户定义的操作,它可以采用累积值和当前元素,并返回新的累积值。这个新的累积值将在下一次迭代中传递给累积器函数。方法从数组的第一个元素开始,依次遍历每个元素,每次调用累积器函数,并传递两个参数:累积值(上一次调用的结果)和当前元素。这个函数用于执行累积操作,即将数组中的元素逐个应用到累积值,并返回新的累积值。:用于对数组中的元素进行累积操作,将数组的每个元素应用到指定的累积器函数,然后返回累积的结果。方法会继续迭代数组中的每个元素,依次调用累积器函数,并更新累积值,直到处理完数组的所有元素。

2024-01-09 17:12:11 403

原创 【Vue3+Ts项目】硅谷甄选 — 品牌管理+平台属性管理+SPU管理+SKU管理

/ 已有的品牌的ts数据类型id: number// 包含全部品牌数据的ts类型// 获取的已有全部品牌的数据ts类型data: {orders: []......enum API {......// 添加品牌// 修改已有品牌// 添加与修改已有品牌接口方法// 修改已有品牌的数据} else {// 新增品牌SPU:电商术语,代表的是一个标准化产品单元。(类)SPU组成:产品品牌名称+描述+产品图片介绍+销售属性【整个项目销售属性一共三个:颜色、版本、尺码】

2024-01-09 17:04:49 1743

原创 【Vue3+Ts项目】硅谷甄选 — 路由配置+登录模块+layout组件+路由鉴权

定义小仓库数据state类型:src\store\modules\types\type.ts// 定义小仓库数据state类型登录接口返回的数据类型:src\api\user\type.ts登录请求可能返回成功/失败的数据,因此类型需要dataType需要包括成功的数据token和失败的数据message,且是可选的,要加上"?token?:string// 登录接口返回的数据类型封装本地存储数据和读取方法:src/utils/token.js// 存储数据。

2023-12-08 15:15:51 2371

原创 【Vue3+Ts项目】硅谷甄选 — vue3组件通信方式

vue3组件通信方式

2023-12-02 14:51:55 1196

原创 【Vue3+Ts项目】硅谷甄选 — 搭建后台管理系统模板

/ 登录接口需要携带参数ts类型// 登录接口返回的数据类型// 定义服务器返回用户信息相关的数据类型data: userPS关于import type引入的理解-CSDN博客。

2023-12-01 21:18:22 2188

原创 关于import type引入的理解

import type 是 ECMAScript 模块系统中的一种语法,用于引入类型信息而不引入实际的运行时代码。它通常与 TypeScript 类型检查工具一起使用。

2023-12-01 14:31:59 2063

原创 vue3---自定义插件注册全局对象

① 在src/components文件夹下创建index.ts:用于注册components文件夹下全部的全局组件。②在入口文件(通常是main.ts)引入步骤①的index.ts文件,通过app.use方法安装自定义插件。

2023-11-28 18:13:28 948

原创 关于src别名的配置之tsconfig.json配置

baseUrl./../基地址baseUrl./baseUrl的值是相对于文件所在的目录的路径。在这个配置中,"./"表示基础路径是当前文件所在的目录。解析非相对模块:当 TypeScript 编译器遇到import或require语句引用一个非相对路径的模块时,它会使用baseUrl作为起点,拼接上模块的相对路径,以解析最终的文件路径。

2023-11-28 10:47:01 1117

原创 关于配置src别名中的path.resolve(“./src“)

通常更安全,因为它是当前模块的目录,不受工作目录的影响。而使用相对路径可能受到工作目录的影响,因为工作目录可能会在不同的执行环境中变化。都是用于生成绝对路径的,但它们的基础路径不同。方法用于将路径或路径片段解析为绝对路径。所以,主要区别在于基础路径不同。例如,如果当前模块的路径是。如果当前模块的路径是。当前模块文件所在的(相对于当前工作目录(

2023-11-28 10:24:42 1416

原创 TypeScript学习记录

泛型类型是一种在编程中使用的抽象类型,它允许你定义一个类型占位符,在实际使用时再指定具体的类型。在 TypeScript 中,泛型类型可以应用于函数、类、接口等,提供更灵活和可重用的代码结构。是泛型类型参数,它表示一个占位符,具体的类型将在使用时提供。函数签名指的是函数的声明或者定义中包含的信息,主要包括函数的参数类型、参数个数、返回类型等。函数签名定义了函数的形状,是函数类型的一部分。是一个函数类型,它的函数签名表示这个函数接受两个参数,都是。类型的具体函数,它接受两个参数并返回它们的和。

2023-11-23 15:03:30 442

原创 创建git仓库

创建git仓库

2023-11-22 17:22:15 1599

原创 关于git hooks

Git hooks 是一种在 Git 仓库中触发自定义脚本的机制。这些脚本可以在特定的 Git 操作(如提交、推送、合并等)发生时执行。通过使用 Git hooks,你可以在版本控制的不同阶段自动运行脚本,以执行一些定制化的操作。此外,确保你的 hooks 脚本是可靠的,以避免引入潜在的问题。请注意,Git hooks 是本地的,并不会被推送到远程仓库。可用于在推送之前运行测试套件,确保代码的质量。),并添加相应的脚本。这个脚本将在对应的 Git 操作触发时执行。可以用于执行一些需要在合并后进行的操作。

2023-11-22 15:46:06 663

原创 js中的防抖和节流

防抖适合处理高频触发的事件,只在事件停止触发后执行一次。节流适合限制事件触发的频率,确保函数在一定时间间隔内执行。选择防抖还是节流取决于具体的需求和应用场景。

2023-11-07 15:52:48 188

原创 vue文档学习笔记之列表渲染---展示过滤或排序后的结果

有时,我们希望显示数组经过过滤或排序后的内容,而不实际变更或重置原始数据。在这种情况下,你可以创建返回已过滤或已排序数组的计算属性。在计算属性不可行的情况下 (例如在多层嵌套的。

2023-11-07 15:36:05 80

原创 前端是如何实现CDN的

总的来说,前端开发人员可以通过利用CDN来加速网站或应用程序的性能,减少带宽成本,提高可用性和可靠性。前端开发人员可以使用CDN提供的域名来引用他们的静态资源,以便利用CDN的加速性能。:CDN通常会缓存静态内容,这意味着用户可以从距离更近的CDN边缘服务器获取资源,而不是从原始服务器。前端开发人员可以利用CDN的缓存来减轻原始服务器的负载,提高用户的响应时间。这可以包括设置缓存时间、版本号或其他缓存相关的标头,以确保浏览器和CDN服务器正确处理资源的缓存。使用CDN来托管他们网站或应用程序中的静态资源。

2023-10-30 15:34:36 1900

原创 CDN是什么?

CDN 的主要目标是通过将内容分发到全球各个地理位置的服务器上,以减少内容传输的延迟和提高可靠性,从而提供更快的加载速度和更好的用户体验。

2023-10-30 15:31:59 89

原创 Object.prototype.toString.call()如何理解

Object.prototype.toString​​​​​​​.call()是 JavaScript 中用于获取对象类型的一种常见方式。这方法通常用来判断某个值的精确类型,因为 JavaScript 的typeof 运算符虽然能用来区分基本数据类型,但对于对象类型的区分并不够精确。

2023-10-18 13:59:33 862

原创 js中深拷贝和浅拷贝的理解,它们的区别是什么

在JavaScript中,深拷贝和浅拷贝是用来复制对象和数据结构的两种不同方法,它们的区别在于复制的程度和对原始数据的影响。

2023-10-18 11:07:19 295 1

原创 什么是AJAX

通过JavaScript,您可以选择要更新的页面元素,将数据填充到这些元素中,或者更改元素的属性和样式。:AJAX的核心特点是异步通信,这意味着网页可以在不中断用户操作的情况下,与服务器进行数据交换。传统的Web应用程序通常需要刷新整个页面才能获取新数据,而AJAX可以在后台发送请求,然后根据响应更新页面的一部分,而不是整个页面。例如,当用户单击按钮时,可以触发AJAX请求,以获取新数据并将其更新到页面上。响应通常包括数据,可以是文本、XML、JSON等格式,这些数据会在响应中返回到网页。

2023-10-17 12:22:02 588

原创 AJAX为什么叫AJAX

因此,AJAX的名字实际上已经超出了"XML",更广泛地表示一种能够异步通信、使用JavaScript并与服务器进行数据交换的技术。: "X" 代表 "XML",尽管实际上AJAX通常使用多种数据格式,包括JSON、HTML、纯文本等,但最早的AJAX应用中,XML(可扩展标记语言)被广泛用于数据交换。: "J" 代表 "JavaScript",因为JavaScript是AJAX的核心编程语言。:AJAX的"A"代表"异步",这是它最重要的特性之一。用于创建交互式Web应用程序的。

2023-10-17 12:19:45 615

原创 单页面应用(SPA):改变用户体验的未来

SPA,全称单页面应用(Single Page Application),是一种Web应用程序的设计方法,它的目标是在单个页面加载的情况下提供流畅的用户体验。与传统的多页面应用程序(MPA)不同,SPA通过动态加载内容,减少了页面刷新,提供更快的响应速度。在Web开发领域,SPA已经改变了游戏规则,它为前端开发者提供了更多的工具和灵活性,以提供更好的用户体验。总的来说,SPA是一个激动人心的发展,它正在塑造Web应用程序的未来,并提供了更多创新的机会。:SPA使用路由来管理页面的导航。

2023-10-14 21:25:25 504

原创 <%=%>模板写法

这种写法通常称为 "内嵌式模板" 或 "模板标记",在前端开发中,这种标记语法用于将动态数据嵌入HTML模板中。这种写法通常与模板引擎一起使用,这些模板引擎会根据提供的数据动态生成HTML。

2023-10-14 17:04:53 675

原创 如何学习vue的工作原理及为何要创建vue框架

官方文档:阅读Vue官方文档是学习Vue的最佳途径。官方文档详细介绍了Vue的核心概念、API和用法,包括Vue的响应式系统、指令、组件开发等。总的来说,Vue是一个强大而灵活的前端框架,通过深入学习其工作原理和核心概念,你可以更好地掌握前端开发的技能,并构建出更好的Web应用。通过实际编码经验,你可以更好地理解Vue的工作原理。教程和博客:寻找在线教程和博客文章,这些资源通常会提供有关Vue的深入知识和最佳实践。社区参与:参与Vue社区,可以向其他开发者请教问题,分享经验,并了解Vue的最新发展。

2023-10-13 16:41:11 232

原创 如何理解vue声明式渲染

开发者只需声明应该如何渲染数据,而不必手动操纵DOM元素,Vue会自动处理底层的DOM更新,这降低了出错的机会,提高了开发速度。这进一步推崇了声明式渲染,因为你可以在组件中声明每个组件的外观和行为,然后在父组件中使用这些组件。:Vue.js的主要方式是使用模板语法,你可以在模板中声明你希望页面上显示的内容,而不必手动操作DOM。这与传统的命令式渲染方式,即手动控制DOM元素的创建、更新和销毁,形成了鲜明的对比。:在Vue中,你可以使用指令来进行数据绑定,将数据与DOM元素关联起来。指令用于双向数据绑定,

2023-10-13 16:37:06 244

原创 创建一个简单的页面脚本的工作原理

总之,简单页面脚本的工作原理涉及到编写HTML、引入JavaScript、编写JavaScript代码,然后使用JavaScript与页面互动并改变页面的行为。:当用户在浏览器中打开HTML文件时,浏览器会加载HTML、CSS和JavaScript文件。:首先,你需要编写一个HTML文件,其中包含页面的结构和内容。:用户与页面交互时,JavaScript代码可以响应这些交互,例如,当用户点击按钮时执行特定的操作。:通过JavaScript,你可以改变页面的状态、内容和外观,从而提供交互性和动态性。

2023-10-12 10:18:31 617

原创 闭包的理解

闭包允许函数访问其词法作用域(在函数定义时的作用域),即使在函数在其定义的作用域之外被调用

2023-10-09 11:16:10 253

原创 javascript中new操作的实现原理

操作符用于创建对象的实例,它的实现原理可以简单描述为以下几个步骤:1.创建一个新的空对象。2.将新对象的原型属性(__proto__)指向构造函数(Constructor)的原型对象(constructor.prototype),这样,新对象就可以继承构造函数原型对象上的属性和方法。3.执行构造函数,并将新对象绑定到关键字,以便构造函数可以设置新对象的属性。4.如果构造函数没有显示返回一个对象,那么将新创建的对象作为结果返回。以下是简单示例说明。

2023-10-09 10:48:49 1019

空空如也

空空如也

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

TA关注的人

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