TypeScript:函数基础

本文介绍了如何在JavaScript中通过函数封装相似代码,减少重复,实现代码复用,如计算数组和、使用参数传递动态值,以及函数的返回值概念。通过实例展示函数的声明、调用、参数传递和返回值的重要性,强调了提高开发效率和代码灵活性的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:如果还要计算其他数组(nums2)中所有元素的和呢? 拷贝一份代码,修改

let nums2: number[] = [2, 4, 6]

存在的问题:相似的代码重复写,代码冗余。

正确的姿势:使用函数包装(封装)相似的代码,在需要的时候调用函数,相似的代码不再重复写。

function getSum(nums: number[]) {

let sum: number = 0

for (let i: number = 0; i < nums.length; i++) {

sum += nums[i]

}

console.log(sum)

}

getSum(nums1) // 计算nums1中所有元素的和

getSum(nums2) // 计算nums2中所有元素的和

所谓函数,就是声明一次但却可以调用任意多次的一段代码

意义:实现代码复用,提升开发效率。

封装:将一段代码包装起来,隐藏细节。

2. 函数使用

===================================================================

函数的使用分为两步:1 声明函数 2 调用函数 (类比变量)。

  • 第一步:声明函数

function 函数名称() {

函数体

}

解释:

函数名称:推荐以动词开头,因为函数表示做一件事情,实现一个功能。

函数体:表示要实现功能的代码,复用的代码。

  • 第二步:调用函数

函数名称()

比如,调用 sing 函数:

sing()

注意:只有调用函数后,函数中的代码才会执行。

总结:

  1. 函数的基本使用分为哪两步? 1 声明函数 2 调用函数

  2. 声明函数的关键字是什么? function

  3. 不调用函数,函数中的代码会执行吗?不会

// 1 声明函数

function sing() {

console.log(‘五环之歌’)

}

// 2 调用函数

sing()

3. 函数参数

===================================================================

3.1 概述


需求:让唱歌的函数(sing),每次调用时,“唱”不同的歌。

function sing() {

console.log(‘五环之歌’)

}

sing() // 五环之歌

sing() // 五环之歌

原因:函数(sing)中歌曲名称是固定值。

存在的问题:函数(sing)只能“唱”固定的歌,太死板,没有体现出函数复用的灵活性。

使用函数参数来实现:

// 调用函数时,告诉函数要唱的歌曲名称

sing(‘五环之歌’)

sing(‘探清水河’)

// 声明函数时,接收传入的歌曲名称

function sing(songName: string) {

console.log(songName)

}

函数(sing)中歌曲名称:固定值 → 动态传入的值。

函数参数的作用:增加了函数的灵活性通用性,针对相同的功能,能够适应更多的数据(值)。

3.2 形参和实参


函数参数分为两部分:1 形参 2 实参。

  1. 形参:声明函数时指定的参数,放在声明函数的小括号中(挖坑)。

function sing(songName: string) { }

 语法:形参名称: 类型注解,类似于变量声明,但是没有赋值。

 作用:指定函数可接收的数据。

然后,就可以在函数体中,像使用变量一样使用形参了。

  1. 实参:调用函数时传入的参数,放在调用函数的小括号中(填坑)。

sing(‘五环之歌’)

 实参是一个具体的值(比如:‘字符串’、18、[]等),用来赋值给形参。

形参和实参的总结:

  • 声明函数时的参数,叫什么?作用?

function sing(songName: string) { }

  • 调用函数时的参数,叫什么?作用?

sing(‘五环之歌’)

通过形参和实参的配合,函数可以接收动态数据,从而让函数变得更加灵活、强大。

3.3 其他说明


  1. 根据具体的功能,函数参数可以有多个,参数之间使用逗号(,)来分隔。

function fn(name: string, age: number) { }

fn(‘刘老师’, 18)

  1. 实参和形参按照顺序,一一对应。

function fn(name: string, age: number) { }

fn(‘刘老师’, 18) // name -> ‘刘老师’, age -> 18

  1. 实参必须符合形参的类型要求,否则会报错!

function sing(songName: string) {}

sing(18) // 报错! 形参要求是 string 类型,但是,实参是 number 类型。

技巧:调用函数时,鼠标放在函数名称上,会显示该函数的参数以及类型。

总结:

  • 函数形参是 string 类型,调用该函数时传入 18 对吗? 不对,因为实参不符合形参的类型要求逗号

  • 函数有多个参数时,多个参数之间用什么符号分隔?

  • 以下代码会报错吗?

function sing(songName: string) { }

sing()// 报错!

报错!因为函数sing要求有一个参数,但是没有传

4. 函数返回值

====================================================================

4.1 概述


函数返回值的作用:将函数内部计算的结果返回,以便于使用该结果继续参与其他的计算。

需求:计算以下两次调用结果的和。

getSum([1, 3, 5]) // 9

getSum([10, 100, 1000]) // 1110

getSum([1, 3, 5]) + getSum([10, 100, 1000]) // 9 + 1110 => 1119

关键点:拿到函数(getSum)内部计算出来的结果,然后,才能进行后续的加法计算。

注意:如果没有指定函数的返回值,那么,函数返回值的默认类型为 void(空,什么都没有)。

4.2 基本使用


步骤:1 指定返回值类型 2 指定返回值

  1. 指定返回值类型

function fn(): 类型注解 {

}

在声明函数的小括号后面,通过 : 类型注解 指定。

function fn(): number {

}

  1. 指定返回值

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

资料过多,篇幅有限,需要文中全部资料可以点击这里免费获取前端面试资料PDF完整版!

自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。

2756386)]

[外链图片转存中…(img-NNYmRSCB-1713562756387)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

[外链图片转存中…(img-sKxJC28H-1713562756387)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

[外链图片转存中…(img-uHYkcD3V-1713562756387)]

最后

[外链图片转存中…(img-zhkvTNOh-1713562756388)]

[外链图片转存中…(img-NfLL00o8-1713562756388)]

资料过多,篇幅有限,需要文中全部资料可以点击这里免费获取前端面试资料PDF完整版!

自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值