函数是一组一起执行一个任务的语句。
函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体
标准函数的定义
function function_name(param1 [:datatype], param2 [:datatype]):return_type {
// 执行代码
return value;
}
- function 声明函数的关键字
- function_name 函数的名称
- return_type 函数的返回类型,若是没有返回值则设置为 void,返回值 value 的类型需要与函数定义的返回类型(return_type)一致
- param1,param2 函数的参数,也可以没有参数;datatype 为参数的类型
函数的配置
设置可选参数
设置 param1 为可选参数
function_name(param1? [:datatype])
设置参数多个类型
设置 param1 多个类型
function_name(param1 [:datatype1|datatype2|datatype3])
设置参数默认值
设置 param1 默认值
function_name(param1 [:datatype]=default_value)
不确定个数的参数应用
restOfParam 用于代表多个参数
function_name(param1 [:datatype],...restOfParam: datatype[])
函数的调用
function_name()
函数返回值
函数将执行的结果返回到调用它的地方。
通过使用 return 语句就可以实现。
在使用 return 语句时,函数会停止执行,并返回指定的值
匿名函数
匿名函数是一个没有函数名的函数。
匿名函数在程序运行时动态声明,除了没有函数名外,其他的与标准函数一样。
将匿名函数赋值给一个变量,这种表达式就成为函数表达式。
let res = function( [arguments] ) { ... }
匿名函数的调用
(function( [arguments] ) { ... })()
构造函数
TypeScript 也支持使用 JavaScript 内置的构造函数 Function() 来定义函数:
var res = new Function ([arg1[, arg2[, ...argN]],] functionBody)
参数 | 说明 |
---|---|
arg1, arg2, … argN | 参数列表 |
functionBody | 包括函数定义的 JavaScript 语句的字符串。 |
typescript代码: |
var myFunction = new Function("a", "b", "return a * b");
var x = myFunction(4, 3);
console.log(x);
编译后的javascript:
var myFunction = new Function("a", "b", "return a * b");
var x = myFunction(4, 3);
console.log(x);
一定要注意,functionBody 是个字符串形式的函数定义
递归函数
递归函数即在函数内调用函数本身。
Lambda 函数
Lambda 函数也称之为箭头函数。
( [param1, parma2,…param n] )=>statement;
函数重载
重载是方法名字相同,而参数不同,返回类型可以相同也可以不同。
每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表:
- 参数类型不同
- 参数数量不同
- 参数类型顺序不同
减少重载函数的方法
:
- 参数类型不同,则参数类型可设置为 any
- 参数数量不同你可以将不同的参数设置为可选