Appearance
函数
- 函数是一组一起执行一个任务的语句。
函数的定义
typescript
function functionName(parameter1: type1, parameter2: type2): returnType {
// 函数体
return value;
}参数
固定参数
- 调用函数时必须传递的参数,参数的数量和类型必须与定义时的参数一致。
typescript
function functionName(parameter1: type1, parameter2: type2): returnType {
// 函数体
return value;
}可选参数
- 调用函数时可以不传递的参数,参数的数量和类型可以与定义时的参数不一致。
- 用
?表示这个参数是可选参数
typescript
function functionName(parameter1: type1, parameter2?: type2): returnType {
// 函数体
return value;
}剩余参数
- 调用函数时可以传递任意数量的参数,参数的数量和类型可以与定义时的参数不一致。
- 用
...表示这个参数是剩余参数,它会将所有传递的参数收集到一个数组中。
typescript
function functionName(parameter1: type1, ...parameter2: type2[]): returnType {
console.log(parameter2);
// 函数体
return value;
}匿名函数
- 没有名称的函数,通常用于作为其他函数的参数或返回值。
- 用
function关键字定义,后面跟着参数列表和函数体。
typescript
const functionName = function (parameter1: type1, parameter2: type2): returnType {
// 函数体
return value;
};箭头函数
- 没有名称的函数,通常用于作为其他函数的参数或返回值。
- 用箭头函数的语法定义,参数列表和函数体之间用
=>连接。 - 箭头函数没有自己的
this,它的this值继承自外围作用域。 - 箭头函数没有自己的
arguments对象,但是可以使用...表示剩余参数。
typescript
const fun1 = (a: number, b: number) => {
return a + b;
};lambda 函数
- Lambda 函数也称之为箭头函数。
- 比箭头函数更简洁,当函数体只有一行代码时可以省略
{}和return关键字。
typescript
const fool = (x: number) => 10 + x;函数重载
- 重载是方法名字相同,而参数不同,返回类型可以相同也可以不同。
typescript
// 参数类型不同:
function functionName(string): void;
function functionName(number): void;
// 参数数量不同:
function functionName(n1: number): void;
function functionName(x: number, y: number): void;
// 参数类型顺序不同
function functionName(x: number, y: number): void;
function functionName(y: number, x: number): void;