// 命名函数,函数名称add
function add(x, y) {
return x + y;
}
// 匿名函数,赋值给myAdd变量
let myAdd = function(x, y) { return x + y; };
// 为上面函数参数和返回值添加类型
function add(x: number, y: number): number {
return x + y;
}
// 赋值语句左边没有类型,右边函数有参数和返回值类型,编译器会自动推断为下面的完整函数类型
let myAdd = function(x: number, y: number): number { return x+y}
// 书写完整的函数类型,需要参数和返回值都有类型,没有返回值则必须是void,不能留空
let myAdd: (x: number, y: number) = function(x: number, y: number)=>number {
return x + y;
}
// 上面的=>表示显示指定函数的返回类型,只要参数类型是匹配的,那么就认为它是有效的函数类型,而不在乎参数名是否正确。
let myAdd: (basex: number, basey: number) = function(x: number, y: number)=>number {
return x + y;
}
// 函数可选参数,只需要在参数从右到左变量后面加?就可以(若想firstName可选,需要firstName在后,并加?)
function buildName(firstName: string, lastName?: string) {
if (lastName)
return firstName + " " + lastName;
else
return firstName;
}
let result1 = buildName("Bob"); // works correctly now
let result2 = buildName("Bob", "Adams", "Sr."); // error, too many parameters
let result3 = buildName("Bob", "Adams"); // ah, just right
// 也可以为函数参数传递默认值,当实参为undefined时,就使用函数的默认值
function buildName(firstName: string, lastName = "zhang") {
if (lastName)
return firstName + " " + lastName;
else
return firstName;
}
let result = buildName(“san”, undefined);
// 若第一个参数有默认值的话
function buildName(firstName: "san", lastName: string) {
if (lastName)
return firstName + " " + lastName;
else
return firstName;
}
let result = buildName(undefined, "zhang");
// 当函数参数有多个参数,但具体不知道有多少个可以使用,可以把所有参数收集到一个变量里,剩余参数会被当做个数不限的可选参数,名字是你在省略号(...)后面给定的名字...varName: string[]
function buildName(firstName: string, ...restOfName: string[]) {
return firstName + " " + restOfName.join(" ");
}
let employeeName = buildName("Joseph", "Samuel", "Lucas", "MacKinzie");
// 使用Function(arg1[,arg2, argn], body)关键字进行构造函数
let fun = new Function("arg1", "arg2", "console.log(arg1+arg2)");
fun("hello", " world");
// 匿名函数,可以赋值给变量,由变量进行调用
let fun = function (arg:any){
...
}
fun("test");
// lambda函数(箭头函数),(arg)=>{statement}
// 有参
let func = (arg) =>{
console.log(arg);
}
func("hello")
// 一个参数时,括号是可选的
func=arg=>{
console.log(arg);
}
func("world")
// 没有参数时,需要空括号
let func1=()=>{
console.log("nothing");
}
func1();
node.ts function
最新推荐文章于 2025-07-26 20:18:34 发布
本文详细介绍了JavaScript中的函数定义、匿名函数、类型注解、可选参数、默认值、函数泛型和函数式编程,包括函数类型声明、可选参数语法和函数组合。涵盖了函数的各种高级用法和编程技巧。
126

被折叠的 条评论
为什么被折叠?



