1、变量及数据类型
// string:字符串,单引号或双引号
let msg : string = 'hello wprld'
console.log('msg:'+msg)// number:数值、整数、浮点let num :number = 21console.log('num:'+num)//boolean:布尔let finished:  boolean = trueconsole.log('finished:'+finished)// any:不确定 可以是任意 (函数用)
let ay : any = "fake"
console.log('ay:'+ay)// union : 联合类型、可以是多个类型中的一个
let un : string|number|boolean = "rose"
console.log('un:'+un)
un = 18
console.log('un:'+un)// Object :对象
let p = {mame:'jack',age:28}
console.log(p.mame)
console.log(p.age)// Array :数组,元素可以是任意类型
let names : Array<string> = ['Jack','Rose']
let ages  : number[]  = [26,28]
console.log(names[0])
console.log(ages[1])
运行结果
[LOG]: "num:21" 
[LOG]: "finished:true" 
[LOG]: "ay:fake" 
[LOG]: "un:rose" 
[LOG]: "un:18" 
[LOG]: "jack" 
[LOG]: 28 
[LOG]: "Jack" 
[LOG]: 28 2、条件控制之if-else
1、if-esle基本用法
 2、if(num){
 …
 }else{}
 num 可以直接作为判断条件判断是否有数据,空字符串、数字0、null、undefined都被认为是false,其他值为true
let num : number = 25// 判断是否为奇偶
//两个“=”会比较类型,三个“=”不会,节省内存空间
if(num%2===0){
console.log(num+"为偶数")
}else{
console.log(num+"为奇数")
}if(num){console.log("非0即为true",num+"为true")
}else{}let num1:string = " "
if(num1){console.log("空字符串为false",num1+"为false")
}else{}let data :any
//变量做判断条件直接判断数据有无
if (data){console.log("数据不存在!")
}else{console.log("数据存在!")
}
运行结果
[LOG]: "非0即为true",  "25为true" 
[LOG]: "空字符串为false",  " 为false" 
[LOG]: "数据存在" 
[LOG]: "25为正数" 
3、条件控制之switch
格式如下,需要break
let grade : string = "A"
switch(grade){case "A":{console.log("优秀")break}case "B":{console.log("合格")break}case "C":{console.log("不合格")break}default:{console.log("非法输入")break}}
运行结果
[LOG]: "优秀" 
4、循环迭代
1.1、for循环
//普通for
let num :number = 0
for(let i = 1;i<=10;i++){
num++
}
console.log("循环"+num+"次")
运行结果
[LOG]: "循环10次" 
1.2 改进for循环
//定义数组
let names :string[] = ["Jack","Rose"]
// for in 迭代器,遍历得到数组脚标
for (const i in names){console.log(i+":"+names[i])
}
// for of 迭代器,直接得到元素
for(const name of names){console.log(name)
}
运行结果
[LOG]: "0:Jack" 
[LOG]: "1:Rose" 
[LOG]: "Jack" 
[LOG]: "Rose" 
2、while循环
let i :number = 1
let num :number=0
while (i<=10){num++i++
}
console.log("循环了"+num+"次")
运行结果
[LOG]: "循环了10次"
5、函数 (声明、参数、函数体、调用函数)
5.1 无返回值函数,返回值void可以省略
//无返回值函数,返回值void可以省略 
function sayHello(name:string):void{console.log('你好,'+name+"!")
}
sayHello("Jack")运行结果
[LOG]: "你好,Jack!" 5.2、有返回值函数
// 有返回值函数
function sum(x:number,y:number ):number {return x+y
}
let a = sum(2,3)
console.log(a)
运行结果
[LOG]: 5 
5.3、箭头函数(简化函数声明)
// 箭头函数(简化函数声明)
let sayHi = (name:string) =>{console.log("你好,"+name+'!')
}
sayHi("Jack")
运行结果
[LOG]: "你好,Jack!" 
5.4、可选参数
function sayHello(name?:string){// 判断name是否有值,如果无值则给默认name = name?name:'陌生人'console.log('你好'+name+'!')
}
// 有值调用
sayHello('Jack')
//无值调用
sayHello()运行结果
[LOG]: "你好Jack!" 
[LOG]: "你好陌生人!" 
5.5、参数默认值
//参数默认值在参数后面赋值,表示参数默认值
//如果调用者没有传参,则使用默认值
function seyHello(name:string = '陌生人'){console.log('你好'+name+'!')
}
seyHello('Jack')
seyHello()
运行结果
[LOG]: "你好Jack!" 
[LOG]: "你好陌生人!" 
6、面向对象编程的基本语法
TypeScript具备面向对象编程的基本语法,如interface、class、enum等。也具备封装、继承、多态等面向对象的基本特征。
封面图
 