• [Typescript]基础篇之函数


    函数是一组一起执行一个任务的语句。

    函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体

    标准函数的定义

    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
    • 参数数量不同你可以将不同的参数设置为可选
  • 相关阅读:
    实验31:温湿度传感器实验
    正态分布检验的拟合优度法与综合统计量法
    C++11-容器
    Python 全栈系列179 单主机使用Docker搭建Mongo分片式集群2
    JAVA基础(八)
    Blazor预研与实战
    【斯坦福大学公开课CS224W——图机器学习】一、图机器学习中的传统方法(1)
    kernel 定时数据机构和API
    代码随想录笔记--贪心算法篇
    uniapp 和 HTML5 区别
  • 原文地址:https://blog.csdn.net/tjj3027/article/details/126857473