数组forEach和map的区别
map会返回一个新数组, forEach不会
所以如果只是需要循环,但是不需要对数组本身进行操作的时候,可以使用forEach, 否则可以考虑使用map
1. ts定义数组:
let a: any[] = [1,2,3]; let arr: Array<number> = [1, 2]; //泛型数组
2. 函数的定义
//void表示该函数没有返回值 function hello(): void { alert("Hello Runoob"); } //该函数需要返回一个string function hello(): string { return 'string'; } // 剩余参数,当函数参数不确定的时候,使用剩余参数来获取传参 function hello(a: string, ...restOfName: string[]) { } //不必填参数 function hello: void (a:string, y?:any) {}; //这里的y就是不必填参数,调用hello方法时,可传也可不传 hello('p', 'dd'); hello('p')
3. 函数重载
定义多个函数,函数的方法名称都相同,但是参数列表都不相同
4. 数组方法
a. reduce
var total = [0, 1, 2, 3].reduce(function(a, b){ return a + b; }); console.log("total is : " + total ); // 6
b.slice返回一个新数组, splice直接对原有数组进行操作
c. some返回数组中的所有元素是否满足某个条件,
filter返回数组中满足某个条件的新数组
5. 联合类型
var val:string|number;
val = 12;
console.log("数字为 "+ val);
val = "Runoob";
console.log("字符串为 " + val);
var arr:number[]|string[];
6. 接口可以多继承
interface IParent1 {
v1:number
}
interface IParent2 {
v2:number
}
interface Child extends IParent1, IParent2 { }
var Iobj:Child = { v1:12, v2:23}
console.log("value 1: "+Iobj.v1+" value 2: "+Iobj.v2)
7. 关键字
-
public(默认) : 公有,可以在任何地方被访问。
-
protected : 受保护,可以被其自身以及其子类和父类访问。
-
private : 私有,只能被其定义所在的类访问。
-
static: 用于定义类的数据成员(属性和方法)为静态的,静态成员可以直接通过类名调用。