这是我参与「第五届青训营」笔记创作活动的第2天
本堂课的重点内容
JavaScript与TypeScript区别
JavaScript是一种动态类型语言(执行的时候才会做一个 匹配检验,静态类型的语言是提前做匹配的),是一种弱类型的(执行时候会类型转换,而强类型执行的时候不存在一个类型转换,比如字符串与数字在强类型的时候不会进行相加,而在弱类型的时候是可以做到的), TypeScript是一种静态类型的语言样式:
基础数据类型
const q = "string"; const w = 1;const e = true;const r = null; const t = undefined;const q: string = "string"; const w:number = 1; const e:boolea = true; const r:null = null; const t:undefined = undefined;
对象类型:const bytedancer 函数类型:直接在函数上面进行类型补充,可以定义接口类型,进行补充。 timestamp?:string加上可缺省参数 函数重载:对函数参数做一个更加明确的声明 数组类型: type IaArr1 = number[] 数组类型 泛型表示 type IArr2 = Array<string | number | Record<string, number> 对象写法> 元祖表示 type IArr3 = [ number, number, string, string ] 接口表示 inferface IArr4 { [key: number]: any }
typescript补充类型
联合/交叉类型 联合类型:联合类型表示一个值是几种类型之一 交叉类型:多种类型叠合在一起成为一种类型,他包含了所有类型的特性 高频机类型 type IbookList = Array<{author:string;}&({type:"history";range: string} | { type:"story";theme:string})> 索引类型:keyof,其相当于取值对象中的所有key组成的字符串字面量: type IKeys = keyof { a: string; b : number }; type IKeys = 'a' | 'b' 关键字[in]:其相当于取值 字符串字面量中的一种可能,配合泛型P,即可以表示每个key 关键字[?], 通过设定的对象的可选选项,可以自动推导出子集类型
HTTP协议
- 请求响应
- 简单可扩展
- 无状态
- 无状态协议带上有状态的信息
- http/0.9 请求GET/mypage.html 响应只有HTML文档
- HTTP1.0 构建可扩展性 增加Header,有了状态码,支持多种文档类型
- HTTP1.1 链接复用 缓存 内容协商
- HTTP/2 二进制协议 压缩header 服务器推送