基本语法
基本类型
| 关键字 | 描述 |
|---|---|
| number | 可以用来表示整数和分数 |
| string | 字符串 |
| boolean | true或false |
| 数组 | let arr:number[] = [];let arr:Array<number> = [] |
| 元组 | 元组类型用来表示已知元素数量和类型的数组,各元素的类型不必相同,对应位置的类型需要相同;let x: [string,number] = ['123',123] |
| 枚举 | enum Color {Red,Green,Blue};let c:Color = Color.Red;console.log(c);//输出0 |
| void | 标识方法的返回值 |
| null | 表示对象值的缺失typeof检测null返回object |
| undefined | 用于初始化变量为一个未定义的值 |
| never | never是其他类型(null/undefined)的子类型,表示从不会出现的值,在函数中它通常表现为抛出异常或无法执行到终止点(例如无限循环) |
any类型
let x:any = 1;
x = '1'
let arrayList:any[] = [1,'1',true]
定义多个类型限制
let x: number|null|string;
变量声明
断言
类型断言纯粹是一个编译时语法,同时,它也是一种为编译器提供关于如何分析代码的方法。
let x:number;
x = y as number;
! 表示不为空
循环
for...in循环
for...in 语句用于一组值的集合或列表进行迭代输出。
for(let i in list){
console.log(i)
}
for...of循环
for...of 语句创建一个循环来迭代可迭代的对象。在 ES6 中引入的 for...of 循环,以替代 for...in 和 forEach() ,并支持新的迭代协议。for...of 允许你遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)等可迭代的数据结构等。
for(let i of list){
console.log(i)
}
forEach循环,every循环,some 循环
因为 forEach 在 iteration 中是无法返回的,所以可以使用 every 和 some 来取代 forEach。
let list = [4,5,6]
list.forEach((val,idx,array)=>{
console.log(val,idx,array)
//val: 数据
//idx: 索引
//array: 数组本身
})
let list = [4,5,6]
list.every((val,idx,array)=>{
console.log(val,idx,array)
//val: 数据
//idx: 索引
//array: 数组本身
})
let list = [4,5,6]
list.some((val,idx,array)=>{
console.log(val,idx,array)
//val: 数据
//idx: 索引
//array: 数组本身
})
无限循环
for(;;){}
while(true){}
函数
function fun_name([param1:xxx,params:xxx,...]): 返回值类型{
//方法体
}
参数列表
可选参数,默认参数,剩余参数
param1: number,param2: number = 0.5,...nums:number[]
匿名函数
var res = function([arguments]){...}
匿名函数自调
(function(){})()
构造函数
var res = new Function ([arg1[, arg2[, ...argN]],] functionBody)
var myFun = new Function('a','b','return a * b')
var x = myFun(1,2)
console.log(x)//输出2
lambda函数
( [param1, parma2,…param n] )=>statement;
Number
Number 对象是原始数值的包装对象
var x = new Number()
String
var x = new String()
Array
var x = new Array()
数组解构
var array:number[] = [1,2,3];
var [x,y,z] = array;
Map
Map对象保存键值对,并且能够记住键的原始插入顺序;任何值都可以作为一个键或者一个值
let myMap = new Map()
元组
联合类型
Type1|Type2|Type3
接口
interface interface_name { //可以定义参数 }
类
class class_name {
// 成员变量
// 构造器
// 方法
}
类的继承
extends
实现接口
implements