文章目录
TS 函数
1. 定义与调用函数
function fo() {
// 函数定义
console.log("调用函数")
}
fo() // 调用函数
2. 有返回值的函数
type是返回值的类型
,return关键词后跟着要返回的结果。
function fo():type{
return value; //返回值的类型需要与函数定义的返回值类型(type)一致。
}
3. 带参数的函数
// p1、p2 为参数名,type 为参数类型
function fo( p1 [:type], p2 [:type]) {
... }
示例:参数固定时,传入的参数 过多或缺少 都会报错。
function add(p1: number, p2: number): number {
return p1 + p2;
}
console.log(add(1)); // 错误,参数缺少
console.log(add(1,2)); // 正确 3
console.log(add(1,2,3)); // 错误,参数过多
4. 可选参数
?
问号标识可选参数。
function test(p1: string, p2?: string) {
return p2 ? p1 + " " + p2 : p1;
}
let result1 = test("AAA"); // 正确
let result2 = test("AAA", "BBB", "CCC"); // 错误,参数太多了
let result3 = test("AAA", "BBB"); // 正确
//可选参数必须跟在必须参数后面。
//如果想要p1是可选的,p2是必选的,那就要调整他们的位置,把p1放到后面。
//如果都是可选参数,就没关系。
5. 默认参数
设置参数的默认值后,如果调用时不传入该参数的值,则使用默认参数。
function fo(p1 [:type], p2 [:type] = default_value) {
... }
注:参数不能同时设置为可选和默认。
6. 剩余参数
有一种情况,当不知道要向函数传入多少个参数,就可以使用剩余参数来定义。
剩余参数语法,允许我们将一个不确定数量的参数作为一个数组传入。
function fo(p1: string, ...ppp: string[]) {
return p1 + " " + ppp.join(" ");
}
let fos = fo("AAA", "BBB", "CCC", "DDD");
//函数的最后一个命名参数ppp以...为前缀,将成为一个由剩余参数组成的数组。
//索引值从0(包括0)到ppp.length(不包括)。
7. 匿名函数
匿名函数即是一个没有函数名的函数。
匿名函数在程序运行时动态声明,除了没有函数名以外,其他的与标准函数一样。
//可以将匿名函数赋值给一个变量,这种表达式就成为函数表达式。
var res = function([arguments]){
... };
7.1 不带参数的匿名函数:
var res = function() {
return "hello world";
}
console.log(res())
7.2 带参数匿名函数:
var res = function(p1: number, p2: number) {
return p1*p2;
}
console.log(res(12,2))
7.3 匿名函数自调用
匿名函数自调用在函数后使用()即可:
(function () {
console.log("Hello!!")
})()