Jude's blog

归档 · 2023

首页

关于

归档

ts

130、类型别名、联合类型、交叉类型

在 TypeScript 中,类型别名起到的就是变量的作用,它可以存储一个类型,后续你可以直接引用它即可。 1234type Handler = () => voidconst handler1: Handler = () => {}const handler2: Handler = () => {} 也可以使用类型别名来替换接口,实现对对象类型的复用: 12345678910type User = { userName: string userAge: number userMarried: boolean userJob?: string}const user: User = { /* ... */&..

更多
ts

129、any、unknown、never类型和类型断言

any 类型any 主打的就是一个“任意”,而在类型层面,我们也可以这么理解,any 类型 = string + number + boolean + 任意对象类型 + 拥有任意参数类型与任意返回值类型的函数类型 + …,它就是无所不包的,因此,在我们不知道对一个变量提供何种类型时,就可以使用 any 类型来作为临时性的过渡方案。 为什么 any 只是临时过度?既然 any 类型能表示所有类型,那它还能带给我们精确的类型提示吗?当然不能,实际上使用了 any 类型,就意味着告诉类型检查系统,这个变量我给它开白名单了,你放过它吧,它想干啥就干啥。这是相当危险的行为,也和我们选择 TypeScript 的原因相悖,因为使用了 any 类型之后,要想代码能够正常运行,你其实又相当于恢复到之前使用 J..

更多
js

128、map和forEach

Array.prototype.map() map() 方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。(每个元素都是回调函数的返回值) 1、语法 map(callbackFn) map(callbackFn,thisArg) 参数: ​ callbackFn: 为数组中的每个元素执行的函数。它的返回值作为一个元素被添加为新数组中。该函数被调用时将传入以下参数:(1)element:数组中当前正在处理的元素(2)index:正在处理的元素在数组中的索引(3)array:调用 map()的数组本身。 ​ thisArg: 执行 callbackFn 时用作 this 的值 map()是一个迭代方法。为数组中每一个元素调用一次提供的 callbackFn 函数,并..

更多
vue3

127、《Vuejs设计与实现》- 霍春阳:vue.js 3设计思路(四)-响应式系统

一、响应式数据和副作用函数副作用函数是指那些产生副作用的函数: 123function effect() { document.body.innerText = 'hello vue3'} 执行 effect 函数时,它会设置 body 的文本内容,这种更改可以被其他任何函数读取或设置。因此,effect 的执行会直接或间接影响其他函数的执行,这就是它产生副作用的地方。副作用很容易产生,比如修改一个全局变量: 123456// 全局变量let val = 1function effect() { val = 2 // 更改全局变量,产生副作用} 理解了副作用函数后,我们再来看看响应式数据是什么。设想在一个副作用函数中读取了某个对象的属性: 123456co..

更多
12