February 2, 2023
数据类型 # Symbol # 符号类型,跟其他语言(ruby, racket 等)里的 Symbol 不一样
表示 唯一 标识符,创建即唯一
可用作对象的属性 key
对象的属性 key 只能是 string 或 symbol 类型,其他类型的值会被转为 string 类型
// id is a symbol with the description "id" let id = Symbol("id"); let id1 = Symbol("id") id !== id1 Symbol 不会被自动转为字符串,可以通过 toString() 方法进行转换
通常用于为第三方库的对象添加 隐藏 属性,而不对其他使用者造成影响
for in 遍历不会遍历 Symbol,Object.keys() 亦如是
Object.assign() 会 copy string 和 symbol 属性
Global Symbol
用途:全局唯一标识符
name 一样,即为同一个 Symbol
...
September 8, 2022
RxJs # 流式编程库
时序,多值 异步,事件,组合 Observable # 可观察量,流
lazy Push collections of multiple values
懒推送的时序的多值的集合
Higher-Order Observables # of # 将输入直接转为 Observable,不做任何转换
from # 将输入拍平转换为 Observable
Observer # 观察者
消费 Observable
Operators # 操作符
针对流的转换
concatAll # 按序订阅。串行
switchAll # 仅订阅最新。 花心
mergeAll # 同时,并发订阅。并发
exhaustAll # 仅订阅当前至其结束,期间丢弃新的。 专一
switchMap # map + switchAll
订阅切换,新订阅来值时,取消老订阅。
mergeMap # map + mergeAll
...
August 25, 2022
Structural Design Patterns # Adapter pattern # 发布订阅 # 观察者模式 #
August 12, 2022
作用 # 用于标注或修改类和类的成员, ts decorator1,js decorator2
可作用于: 类声明,方法,访问器,属性,参数
组合 # 多 decorator 组合时,调用顺序为
decorator 表达式的执行自上而下 decorator 表达式的执行结果作为函数,从下往上按序作用于被装饰的元素 执行顺序 # 实例成员 参数 方法 访问器 属性 静态成员 参数 方法 访问器 属性 constructor 参数 类 ts decorator ↩︎
js decorator ↩︎
August 10, 2022
IOC # inversion of control,控制反转
由 frammework 去控制代码的执行,实例化逻辑,而不是用户代码去控制
Do not call us, we call you
DI # dependency injection,依赖注入
依赖类跟其依赖 解耦 ,利于测试和代码复用
实现方式 # Constructor injection Interface injection Setter injection 依赖抽象的接口,而不是具体的实现
ts/js 如何实现? #
July 6, 2022
基础类型 # Symbol # 符号类型,跟其他语言(ruby, racket 等)里的 Symbol 不一样
表示 唯一 标识符,创建即唯一
可用作对象的属性 key
对象的属性 key 只能是 string 或 symbol 类型,其他类型的值会被转为 string 类型
// id is a symbol with the description "id" let id = Symbol("id"); let id1 = Symbol("id") id !== id1 Symbol 不会被自动转为字符串,可以通过 toString() 方法进行转换
通常用于为第三方库的对象添加 隐藏 属性,而不对其他使用者造成影响
for in 遍历不会遍历 Symbol,Object.keys() 亦如是
Object.assign() 会 copy string 和 symbol 属性
Global Symbol # 用途:全局唯一标识符
...
June 3, 2022
Character Class # 字符类
字符 含义 \d 数字 \D 非数字 \s 空格,换行符,制表符 \S 非 \s \w 拉丁字母,数字,下划线 _ \W 非 \w . 除 \n 外的任意字符; 如果有 s flag,则为任意字符 Quantifiers # 量词,用于针对其前面的字符的数量的修饰
字符 含义 {n} n个 + 1或多,[1, +\(\infty\) ) * 0或多,[0, +\(\infty\) ) ?
...
June 3, 2022
Reactor Pattern # 异步的底层原理 # 操作系统的 api
Callback # Generator # 被调用时返回一个 generator 对象,函数体不会立即执行, 通过 generator 对象控制函数体的执行
function* f() function *g() function * h() // 三种声明方式都可以, 第一种比较好 // as the star * denotes that it’s a generator function, it describes the kind, not the name, so it should stick with the function keyword Promise1 # Promise 对象表示异步操作的最终完成结果以及其值(或异常)
状态 # pending
...