赞
踩
【函数】封装了一些重复使用的代码,在需要的时候直接调用。
(1)使用函数声明方式
- //1.Js
- function add1(x, y) {
- return x + y
- }
- //2.Ts
- //命名函数
- function add2(x:number, y:number):number{return x + y }
-
(2)使用函数表达式方式
- //函数表达式
- //1.Js
- let myAdd = function(x, y) {
- return x + y;
- }
- //2.TS 匿名函数
- let myAdd=function(x:number, y:number):number{return x + y }
【匿名函数自调用】
- (function () {
- var x = "Hello!!";
- console.log(x)
- })()
-
- //或者采用箭头函数表现形式
- (()=>{
- xxxx
- })()
(3)同时指定参数类型和返回值类型
- // sum2---变量名
- // (x: number, y: number) => number当前这个函数的类型
- // function (x: number, y: number): number { return x + y }符合上面函数类型的值
- const sum2: (x: number, y: number) => number = function (x: number, y: number): number {
- return x + y
- }
- console.log(sum2(1, 2))
-
(4)函数构造器(Function构造函数)
【构造函数】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); //12
【递归函数】递归函数即在函数内调用函数本身。
(5)箭头函数
【Lambda 函数】Lambda 函数也称之为箭头函数。箭头函数表达式的语法比函数表达式更短。
箭头函数只有一行语句:( [param1, parma2,…param n] )=>statement;
- var foo = (x:number)=>1 + x
- console.log(foo(20)) //21
箭头函数是一个语句块:( [param1, parma2,…param n] )=> { // 代码块 }
- var foo = (x:number)=> {
- x = 1 + x
- console.log(x)
- }
- foo(20) //21
注意:单个参数 () 是可选的: var foo=x=>{};无参数时可以设置空括号:var foo=()=>{}
【默认参数、可选参数、剩余参数】
默认参数:函数声明时,内部的参数有自己的默认值
可选参数:函数在声明时,内部的参数使用?进行修饰
剩余参数:声明时放在所有参数的最后
- const getInfo = function (name: string = "Lisa", hobby?: string, ...args: string[]): string {
- if (hobby) {
- return name + "喜欢" + hobby+args
- } else {
- return name+args
- }
- }
- console.log(getInfo()) //Lisa
- console.log(getInfo("聪聪","","a","b","c")) //聪聪,a,b,c
- console.log(getInfo("大熊", "跑步","a","b","c")) //大熊喜欢跑步,a,b,c
-
【函数重载】函数方法名相同, 而参数(参数类型,参数数量,参数类型顺序)不同,返回类型可以相同也可以不同。每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。在JS中, 由于弱类型的特点和形参与实参可以不匹配,,是没有函数重载这一说法的, 但在TS中, 与其它面向对象的语言(如Java)就存在此语法。
- /*
- 函数重载: 函数名相同, 而形参不同的多个函数
- 需求: 我们有一个add函数,它可以接收2个string类型的参数进行拼接,也可以接收2个number类型的参数进行相加
- */
-
- // 函数重载声明
- function add(x: string, y: string): string
- function add(x: number, y: number): number
- // 定义一个add函数,可以接收2个string类型的参数进行拼接,也可以接收2个number类型的参数进行相加
- function add(x: string | number, y: string | number): string | number {
- // return x + y // console.log(name)
- // 进行类型判断
- if (typeof x === 'string' && typeof y === 'string') {
- return x + y
- } else if (typeof x === 'number' && typeof y === 'number') {
- return x + y
- } else {
- return -1
- }
- }
- console.log(add("小明", "开心")) //小明开心
- console.log(add(1, 2)) //3
- // 函数重载作用---传入非法值,ts给出错误提示信息
- // console.log(add(1, "鲜美"))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。