TypeScript 函数

2021-03-09  本文已影响0人  薥劃

函数定义

function function_name()
{
    // 执行代码
}

调用函数

函数可通过调用才可以执行函数内的代码。

function_name()

function test() {   // 函数定义
    console.log("调用函数") 
} 
test()   

函数返回值

function function_name():return_type { 
    // 语句
    return value; 
}
// 函数定义
function greet():string { // 返回一个字符串
    return "Hello World" 
} 
 
function caller() { 
    var msg = greet() // 调用 greet() 函数 
    console.log(msg) 
} 
 
// 调用函数
caller()

带参数函数

function func_name( param1 [:datatype], 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)

var myFunction = new Function("a", "b", "return a * b"); 
var x = myFunction(4, 3); 
console.log(x);
上一篇下一篇

猜你喜欢

热点阅读