TypeScript 函数
2021-03-09 本文已影响0人
薥劃
函数定义
function function_name()
{
// 执行代码
}
调用函数
函数可通过调用才可以执行函数内的代码。
function_name()
function test() { // 函数定义
console.log("调用函数")
}
test()
函数返回值
function function_name():return_type {
// 语句
return value;
}
-
eturn_type 是返回值的类型。
-
return 关键词后跟着要返回的结果。
-
一个函数只能有一个 return 语句。
-
返回值的类型需要与函数定义的返回类型(return_type)一致。
// 函数定义
function greet():string { // 返回一个字符串
return "Hello World"
}
function caller() {
var msg = greet() // 调用 greet() 函数
console.log(msg)
}
// 调用函数
caller()
带参数函数
function func_name( param1 [:datatype], param2 [:datatype]) {
}
-
param1、param2 为参数名。
-
datatype 为参数类型。
function add(x: number, y: number): number {
return x + y;
}
console.log(add(1,2))
可选参数
function buildName(firstName: string, lastName: string) {
return firstName + " " + lastName;
}
let result1 = buildName("Bob"); // 错误,缺少参数
let result2 = buildName("Bob", "Adams", "Sr."); // 错误,参数太多了
let result3 = buildName("Bob", "Adams"); // 正确
使用可选参数
function buildName(firstName: string, lastName?: string) {
if (lastName)
return firstName + " " + lastName;
else
return firstName;
}
let result1 = buildName("Bob"); // 正确
let result2 = buildName("Bob", "Adams", "Sr."); // 错误,参数太多了
let result3 = buildName("Bob", "Adams"); // 正确
默认参数
function function_name(param1[:type],param2[:type] = default_value) {
}
function calculate_discount(price:number,rate:number = 0.50) {
var discount = price * rate;
console.log("计算结果: ",discount);
}
calculate_discount(1000)
calculate_discount(1000,0.30)
剩余参数
不知道要向函数传入多少个参数,这时候可以使用剩余参数来定义。
function buildName(firstName: string, ...restOfName: string[]) {
return firstName + " " + restOfName.join(" ");
}
let employeeName = buildName("Joseph", "Samuel", "Lucas", "MacKinzie");
function addNumbers(...nums:number[]) {
var i;
var sum:number = 0;
for(i = 0;i<nums.length;i++) {
sum = sum + nums[i];
}
console.log("和为:",sum)
}
addNumbers(1,2,3)
addNumbers(10,10,10,10,10)
匿名函数
var res = function( [arguments] ) { ... }
不带参数匿名函数:
var msg = function() {
return "hello world";
}
console.log(msg())
带参数匿名函数:
var res = function(a:number,b:number) {
return a*b;
};
console.log(res(12,2))
构造函数
var res = new Function ([arg1[, arg2[, ...argN]],] functionBody)
- arg1, arg2, ... argN:参数列表。
- functionBody:一个含有包括函数定义的 JavaScript 语句的字符串。
var myFunction = new Function("a", "b", "return a * b");
var x = myFunction(4, 3);
console.log(x);