js

JavaScript 基础

February 2, 2023
js

数据类型 # 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 ...

RxJs

September 8, 2022
js

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
js

Structural Design Patterns # Adapter pattern # 发布订阅 # 观察者模式 #

装饰器

August 12, 2022
js

作用 # 用于标注或修改类和类的成员, ts decorator1,js decorator2 可作用于: 类声明,方法,访问器,属性,参数 组合 # 多 decorator 组合时,调用顺序为 decorator 表达式的执行自上而下 decorator 表达式的执行结果作为函数,从下往上按序作用于被装饰的元素 执行顺序 # 实例成员 参数 方法 访问器 属性 静态成员 参数 方法 访问器 属性 constructor 参数 类 ts decorator ↩︎ js decorator ↩︎

控制反转

August 10, 2022
js

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
js

基础类型 # 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
js

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
js

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 ...