自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vue3的核心API功能:computed()API使用

当我们打印plusOne.value的值的时候,走的是get的回调函数而不是get的回调函数.那么这时候就走了computed的set回调函数,而没有走get回调函数.这样分别定义computed的get回调函数和set回调函数,上面例子定义了plusOne.value的值为1,这样是常规使用方法.

2024-05-23 15:11:31 22

原创 git clone 出现的问题

看起来在克隆仓库时出现了错误。错误信息表明在读取边带数据包时发生了意外断开连接,导致提前结束和无效的索引包输出。这可能是由网络问题或远程仓库的问题引起的。您可以尝试重新克隆仓库,或检查远程仓库是否存在任何问题。

2024-05-23 14:45:51 37

原创 仿照ref()API源码,新增一个enhancedRef()API

当我们尝试设置一个超出范围的值时,它会触发无效值回调,并且不会改变当前的值。这样可以确保我们的数据始终保持有效,并且可以根据需要执行相应的操作。我们创建了一个带有数据验证功能的。

2024-05-22 17:03:26 96

原创 在vue3/core源码中,ref.ts文件中增加防抖节流功能API

【代码】在vue3/core源码中,ref.ts文件中增加防抖节流功能API。

2024-05-22 16:04:31 33

原创 对vue3/core源码ref.ts文件API的认识过程

这就是ref对象了,我们根据对象中有没有__v_isRef来判断是不是一个ref对象,当对象存在且__v_isRef === true的时候他就判定为是一个ref对象然后返回true.shallowRef用来创建一个浅层的ref对象,浅层ref只会对对象的第一层属性进行响应式处理,不会递归处理对象内部的属性.torefs用于将一个响应式对象的所有响应式属性啊ref对象,且返回一个包含所有转换后属性的对象。// 使用toRef将响应式对象的属性转换为Ref对象。// 修改响应式对象的属性。

2024-05-21 23:06:47 605

原创 vue/core源码中ref源码的js化

转化完毕,相信看过源码的小伙伴一经发现,转化前的代码非常臃肿且难以阅读,转化后的代码轻便易于阅读,且能快速在浏览器的控制台调试和实现ref的功能。最后我们通过打印result可以看到输出了一个RefImpl对象,之后我们通过打印result.value即可获得我们当初传给ref的0。当看见reactivity文件中的ref.ts文件长达五百多的ts代码后,突发奇想想看下转化成js有多少行。

2024-05-21 11:15:34 616

原创 vscode中js文件想要添加jsdoc怎么快速添加呢?

使用jsdoc generator插件,插件安装后输入/**在代码块上面就可以出现jsdoc的注释代码块了。vscode中js文件想要添加jsdoc怎么快速添加呢?

2024-05-20 21:55:00 193

原创 jsdoc的相关文章和知识点

在给函数参数添加注释时,通常使用`@param`来说明参数的类型、名称、默认值和描述。而在描述变量或属性的类型时,则使用`@type`标签。在JSDoc注释中,`@param`和`@type`是两个常用的标签,用于提供关于函数参数和变量类型的信息。- `@param` 主要用于描述函数的参数,包括参数的名称、类型、默认值和描述。- `@type` 主要用于描述变量、属性或函数返回值的数据类型。- `{Type}` 指定变量或属性的数据类型。- `{Type}` 指定参数的数据类型。- 用于描述函数的参数。

2024-05-20 16:13:56 387

原创 Cannot invoke an object which is possibly ‘undefined‘

定义interface接口的时候sayHi方法使用的是可选属性,可以有可以没有,挡在实际方法中调用sayHi方法的时候报错了,name: '黎明',

2024-05-16 11:42:26 130

原创 vue3实现canvas图片验证码

【代码】vue3实现canvas图片验证码。

2024-05-15 14:35:37 113

原创 快速上手TypeScript

ts复制代码语法:在函数名称的后面添加<>尖括号中添加类型变量,比如此处的 Type(任意合法的变量名)类型变量Type,是一种特殊类型的变量,它处理类型而不是值该类型变量相当于一个类型容器,能够捕获用户提供的类型 (具体是什么类型由用户调用该函数时指定)因为 Type 是类型,因此可以将其作为函数参数和返回值的类型,表示参数和返回值具有相同的类型。

2024-05-15 11:40:16 324

原创 针对promise.resolve()函数本身是什么类型的任务的判断

关于任务队列的分类,可以将 `Promise.resolve()` 创建的 Promise 的回调函数归类为微任务。`Promise.resolve()` 本身是一个同步任务。当调用 `Promise.resolve()` 时,它会立即返回一个已解析的 Promise 对象,因此它是在当前的执行上下文中同步执行的。由此得出结论,当有promise的回调,且会调用有输出的时候,当成同步按顺序执行,当promise的会调用没有输出,而是他的返回值的.then回调函数中有输出,则放到微队列中。

2024-05-14 15:56:25 1319

原创 闭包小练习-记录用户访问次数

count++;

2024-05-14 15:02:10 185

原创 当css:color: var(--color-text);是什么意思?

问:color: var(--color-text);是什么意思?回答:

2024-05-13 17:30:20 105

原创 vue官网,路由部分案例代码

【代码】vue官网,路由部分案例代码。

2024-05-13 13:53:31 126

原创 vue官网推荐的,vue在线演练场

2024-05-13 11:32:41 182

原创 数组扁平化

这里最简便,用的人最多,flat方法。

2024-05-10 14:52:00 81

原创 当用npm下载一个新的vue3项目,出现报错提示原因以及解决方法?

npm create vue@latest 就可以创建项目了,这时候将之前的过期的镜像地址改为了最新的npmmirror.com地址。gpt提示是registry出现了问题,这时候已经想起之前看过的一个文章讲了,npm registry的问题,这时候我可以选择执行,将指向淘宝的镜像指向npmjs官网,但是这时候我选择查看之前看过的文章,当时希望下载一个新的vue3项目,

2024-05-10 14:36:15 381

原创 当前显示两个汉字但是通过.length()却打印出来八个长度的问题,以及怎么解决

当前用户名称进行长度的限制,超过的长度就设置为省略号,但是目前两个字却显示是八个长度,可以查看字符串的真实长度,在查找的过程中发现,并不能解决我的问题,

2024-05-09 14:49:42 90

原创 new map()既然和new set()很像,请解释new map()的作用?

从这段回答中就可以看出,是浏览器或Node.js环境将map对象展示为一个可展开的数据结构,要想知道他到底是不是直接右键复制obj就可以知道了,复制的是一个数组而没有键值对。经过打印,可以看见里面map去重的过程,最后我们看见打印的uniqueArray虽然是一个数组,但是可以点击展开,类似于对象,但最外层又是数组的中括号包括。上面的代码就是一个使用new map()去重的方法,因为map.set方法中左边的item是不能重复的。发现直接报错了,key,value格式的数据时不能使用中括号的。

2024-05-08 14:42:43 215 1

原创 js的好用的代码

获取数组中的随机元素使用 Math.random() 函数和数组长度可以轻松获取数组中的随机元素:const arr = [1, 2, 3, 4, 5];const randomElement = arr[Math.floor(Math.random() * arr.length)];console.log(randomElement);数组扁平化使用 reduce() 函数和 concat() 函数可以轻松实现数组扁平化:const arr = [[1, 2], [3, 4], [5,

2024-05-08 11:34:14 374

原创 防抖,节流

【代码】防抖,节流。

2024-05-07 21:26:19 280

原创 Vue3 基础介绍

vue3.0 向下兼容 vue2.x 版本,优化了主要核心双向绑定原理和体积大小,并且更加友好的兼容 ts 语法。vue 响应式原理本质就是 ES6 新语法 proxy 实现的。Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写. 接收两个参数,target 参数表示所要拦截的目标对象,handler 参数也是一个对象,用来定制拦截行为。// 源对象age: 18,// handler作为拦截配置对象。

2024-05-07 14:51:25 751

原创 ts知识面向对象

【代码】ts知识面向对象。

2024-05-07 14:40:07 90

原创 p标签内限制显示

webkit-line-clamp是webkit的私有属性,是一个 不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中,这个属性 目前仅支持webkit浏览器,比较合适WebKit浏览器或移动端。面具戴太久,就会长到脸上,再想揭下来,除非伤筋动骨扒皮。前两个显示设置了p标签的宽度,后一个不显示设置宽度,因为p标签是块状元素,默认是父容器宽度的100%-webkit-box-orient: 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式。

2024-05-07 14:37:43 381

原创 rest参数语法

请问除了rest语法还有什么语法呢?

2024-05-07 11:23:48 195

原创 console.log(i++ + ++i);的计算小题

console.log(i++ + ++i)输出结果为什么是4而不是3?

2024-05-05 13:48:49 308 1

原创 js执行顺序小题

在 JavaScript 中,当在函数内部引用一个变量时,它会首先在当前函数的作用域中查找这个变量。如果在当前作用域中找不到该变量,则会向上级作用域查找,直到找到该变量或者达到全局作用域。这种行为被称为词法作用域(lexical scoping),JavaScript 中的作用域链是在函数定义时确定的,而不是在函数调用时。在 JavaScript 中,作用域是在函数定义时确定的,而不是在函数调用时。所以,它会继续向上查找,在全局作用域中找到了。函数内部调用的,但是它的定义是在全局作用域中,而不是在。

2024-05-05 11:31:05 392 1

原创 TypeScript高频面试题及解析

TypeScript是一种由微软开发的开源编程语言,它是JavaScript的超集。TypeScript通过添加静态类型类接口和模块等功能,使得在大型应用程序中更容易进行维护和扩展。它可以被编译为纯JavaScript,从而能够在任何支持JavaScript的地方运行。使用TypeScript可以帮助开发人员在编码过程中避免一些常见的错误,并提供更好的代码编辑功能和工具支持。接口是用于描述对象的形状的结构化类型。它定义了对象应该包含哪些属性和方法。

2024-05-05 11:17:20 644

原创 js宏任务微任务

在这个例子中,asyncFunction中的console.log语句会在main函数中的await语句之前执行,但await之后的代码会等待asyncFunction的结果。在这个输出中,我们可以看到async/await的异步执行行为:asyncFunction内的代码会先执行,但await之后的代码会等待Promise的解析,并且在微任务队列中排队等待执行。这里先执行同步代码,到了promise就放到微任务队列,先执行完同步代码,然后执行微任务.属于宏任务,所以在所有微任务执行完之后处理。

2024-05-05 11:16:28 529

原创 this指向小题

在这个代码中,print函数是作为obj对象的一个方法被调用的。当你在obj上调用print方法时,this关键字将指向obj对象本身。因此,print函数中的console.log(this)将打印出obj对象。里面的this指向哪里?

2024-05-04 13:22:08 122

原创 什么是every()方法,以及[].every()为什么永远是true?

方法用于检测数组中的所有元素是否都符合指定条件。它会对数组中的每个元素执行指定的回调函数,直到有一个元素不符合条件或者遍历完所有元素为止。如果所有元素都符合条件,则返回。在这个例子中,由于数组中的某些元素不大于 10,所以。下面是一个示例,演示如何使用。every怎么使用?在JavaScript中,

2024-05-03 22:03:54 182

原创 宏任务和微任务的相关的小案例

执行顺序是什么样的?

2024-05-03 19:46:26 192

原创 使用console.log()打印多彩文字和图案

【代码】使用console.log()打印多彩文字和图案。

2024-05-03 13:38:11 322

原创 测试当前拷贝方式是深拷贝还是浅拷贝

因为他只拷贝了表层a的值,复制了a的值放到了新创建的obj2这个新创建的空对象里面,但是深层的b,c,e,f的值他都没有拷贝,因为通过修改obj,可以看见,obj和obj2的a是不同的,这意味着obj和obj2的a是不同的地址,但是深层的obj和obj2的b,cef都是一样的,这意味着,obj2的b,c,e,f指向的是obj的b,c,e,f的地址,所以当修改obj的b,c,e,f的值,obj2的b,c,e,f也会修改.所以意味着拓展运算符是浅拷贝。object.assign()是浅拷贝。

2024-05-03 13:34:42 733

原创 宏任务和微任务?

问:执行结果是什么?回答:问:执行结果是什么?

2024-04-28 15:29:20 154

原创 Vue3: 获取元素DOM的方法

【代码】Vue3: 获取元素DOM的方法。

2024-04-26 14:45:15 100

原创 更改主题色

在这个例子中,我们使用了--primary-color作为body元素的文字颜色,以及--secondary-color作为按钮的背景颜色。提示::root表示根元素,拥有更高的优先级,这里可以设置全局样式变量,通过css的var方法来获取对应变量且获得相应的样式。通过调用changeTheme函数,你可以将主题色更改为不同的颜色,而不需要修改每个使用这些颜色的元素的样式规则。通过使用CSS变量设置主题色,你可以创建一个更加灵活和可维护的样式系统,使得主题切换变得更加简单和高效。

2024-04-26 14:25:00 118

原创 vue3使用ts

1234567891011121314151617181920212223242526272829 12312345678910 1231234567891011121314151617181920212223242526272829303132 12345 12312345678910111213141516 12345678910111213 123123456789101112 1234567891011 12312345678 正在上传…

2024-04-26 11:21:21 376

原创 await写在要掉用的函数前面,那async要写在哪里才合适有什么判断依据

await写在要掉用的函数前面,那async要写在哪里才合适有什么判断依据。

2024-04-26 11:20:39 129

js扭蛋机基础代码有图片和代码

实现了点击的动画,如果后续有自己的想法可以更加完善,或根据项目需求进行变更,目前代码实现了基本的扭蛋机功能,可以直接放在项目中使用

2023-04-11

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

TA关注的人

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