深入理解JS和深入浅出typescript|青训营笔记

34 阅读2分钟

深入理解JS和深入浅出typescript JS诞生:1,借鉴C语言的基本语法。 2,借鉴Java语言的数据类型和内存管理 3,借鉴Scheme语言,将函数提升到“第一等公民”的地位 4,借鉴Self语言,使用基于原型的继承机制

js基本概念:browser进程,gpu进程,渲染进程,插件进程,网络进程 渲染进程:gui线程,js线程,时间触发线程,定时器触发线程,网络线程

单线程,动态,弱类型,面向对象,函数式,解释类语言,JIT,安全,性能差

数据类型 对象:数组,函数。。。 基础类型:字符串,undefined,数字,null,symbolbigint,布尔

全局执行上下文:代码开始执行时就会创建,将它压到执行栈的栈底,每个生命周期内只有一份 函数执行上下文:当执行一个函数时,这个函数内的代码会被编译,生成变量环境,词法环境等,当函数执行结束的时候该执行环境从栈顶弹出

此法环境:基于ecmascript代码的词法嵌套结构来定义标识符和具体变量和函数的关联。一个词法环境有环境记录器和一个可能的引用外部词法环境的控制组成 变量环境:变量环境和词法环境的一个不同就是前者被用来存储函数声明和变量(let和const)绑定,而后者只用来存储var变量绑定 outer:指向外部变量环境的一个指针

TS基础-基础类型 1,boolean,number,string 2,undefined,null 3,any,unknown,void 4,never 5,数组类型[] 6,元组类型tuple

函数类型 定义:ts定义函数类型时要定义输入参数和输出类型 输入参数:参数支持可选参数和默认参数 输出参数:输出可以自动推断,没有返回值时,默认未void类型 函数重载:名称相同但是参数不同,可以通过重载支持多种类型

类:定义:写法和js差不多,增加了一些定义 特点:增加了public,private,protected修饰符 抽象类:只能被继承,不能被实例化 作为基类,抽象方法必须被子类实现 interface约束类,使用implements关键字

高阶类型:1,联合类型:| 2,交叉类型:& 3,类型断言 4,类型别名(type VS interface) 定义:给类型起个别名 相同点:1,都可以定义对象或函数,2都允许继承 差异点:1,interface是Ts用来定义对象,type是用来定义别名方便使用 2,type可以定义基本类型,interface不行 3,interface可以合并重复声明,type不行