原型 显式原型 prototype构造函数都有显式原型 上面放的是能够被所有实例化对象所使用的属性和方法
隐式原型 ** -- proto--每一个实例都有隐式原型 指向构造函数的显式原型
#TypeScript理解
type+javascript
TypeScript是JavaScript的超集:js有的ts都有
#安装TypeScript
Node和浏览器不能直接运行TS,需要把TS转化成JS
实现TypeScript向JavaScript的转变
npm i typescript -g //全局安装typescript
tsc -v //查看版本
tsc 文件.ts //编译ts文件:生成js文件
node 文件.js //执行js代码
简化运行TS步骤
ts-node可以编译和执行ts文件
npm i -g ts-node //安装ts-node安装包
ts-node 文件.ts //讲ts妆化js然后运行js代码
TS数组
数组具有很大灵活性,即数组内可以存储任意类型数据
TS元组
元组可以理解为一个长度,每一项元素类型都确定的数组
//数据类型 前面定义的是什么数据类型后面必须是什么类型
let str:string = "北京"
let num:number = 100
let bol:boolean= false
let god:(string|number) = "100"
let log:(string|boolean) = "true"
let pop:any = 123
//数组 冒号后面指定类型 等号后面只能是指定的类型 (如果是多个类型的话,可以前后颠倒)
let str1:string[] = ["北京"]
let str2:number[] = [123]
let str3:(string|number)[] = ["北京",123]
//元组 前面括号里指定什么类型还有类型先后顺序 等号后面就只能是按类型顺序写(不能多,也不能少,前后不能颠倒)
let str4:[string,number] = ["北京",123]
let str5:[string,string] = ["北京","123"]
let str6:[number,string] = [123,"123"]
//类型的定义
type myDe = {name:string,age:number,flag:boolean}
let obj1:myDe = {name:"张三",age:20, flag:true }
let obj2:myDe = {name:"李四",age:21, flag:false }
let obj3:myDe = {name:"王五",age:22, flag:true }
//函数类型
//普通函数
function fn(num1:number,num2:number):number {
return num1+num2
}
//箭头函数
const fn1 = (num1:number,num2:number):number =>{
return num1 + num2
}
//同时指定参数和返回值类型
const fn2 : (num1:number,num2:number)=>number=(num1,num2)=>{
return num1 + num2
}