typescript 函数 | 菜鸟教程


本站和网页 https://www.runoob.com/typescript/ts-function.html 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

TypeScript 函数 | 菜鸟教程
菜鸟教程 -- 学的不仅是技术,更是梦想!
首页 HTML CSS JavaScript Vue Bootstrap NodeJS Python3 Python2 Java C C++ C# Go SQL Linux jQuery 本地书签 我的圈子 登录 --> JS Search Python3 教程 Python2 教程 Vue3 教程 vue2 教程
Bootstrap3 教程
Bootstrap4 教程
Bootstrap5 教程
Bootstrap2 教程
TypeScript 教程
TypeScript 安装
TypeScript
基础语法
TypeScript 基础类型
TypeScript 变量声明
TypeScript 运算符
TypeScript 条件语句
TypeScript 循环
TypeScript 函数
TypeScript Number
TypeScript String
TypeScript Array(数组)
TypeScript Map 对象
TypeScript 元组
TypeScript 联合类型
TypeScript 接口
TypeScript 类
TypeScript 对象
TypeScript 泛型
TypeScript 命名空间
TypeScript 模块
TypeScript 声明文件
TypeScript 测验
函数是一组一起执行一个任务的语句。
您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。
函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。
函数定义
函数就是包裹在花括号中的代码块,前面使用了关键词 function:
语法格式如下所示:
function function_name()
// 执行代码
实例
function
//
console
log
"
调用函数
函数只有通过调用才可以执行函数内的代码。
function_name()
test
函数返回值
有时,我们会希望函数将执行的结果返回到调用它的地方。
通过使用 return 语句就可以实现。
在使用 return 语句时,函数会停止执行,并返回指定的值。
function function_name():return_type {
// 语句
return value;
return_type 是返回值的类型。
return 关键词后跟着要返回的结果。
一般情况下,一个函数只有一个 return 语句。
返回值的类型需要与函数定义的返回类型(return_type)一致。
greet
string
返回一个字符串
return
Hello World
caller
var
msg
调用 greet() 函数
实例中定义了函数
greet()
,返回值的类型为 string。
函数通过 return 语句返回给调用它的地方,即变量 msg,之后输出该返回值。。
编译以上代码,得到以下 JavaScript 代码:
带参数函数
在调用函数时,您可以向其传递值,这些值被称为参数。
这些参数可以在函数中使用。
您可以向函数发送多个参数,每个参数使用逗号
分隔:
function func_name( param1 [:datatype], param2 [:datatype]) {
param1、param2 为参数名。
datatype 为参数类型。
add
number
add()
,返回值的类型为 number。
函数中定义了两个 number 类型的参数,函数内将两个参数相加并返回。
输出结果为:
可选参数和默认参数
可选参数
在 TypeScript 函数里,如果我们定义了参数,则我们必须传入这些参数,除非将这些参数设置为可选,可选参数使用问号标识 ?。
buildName
firstName
lastName
let
result1
Bob
错误,缺少参数
result2
Adams
Sr.
错误,参数太多了
result3
正确
以下实例,我们将 lastName 设置为可选参数:
?:
if
else
可选参数必须跟在必需参数后面。 如果上例我们想让 firstName 是可选的,lastName 必选,那么就要调整它们的位置,把 firstName 放在后面。
如果都是可选参数就没关系。
默认参数
我们也可以设置参数的默认值,这样在调用函数的时候,如果不传入该参数的值,则使用默认参数,语法格式为:
function function_name(param1[:type],param2[:type] = default_value) {
注意
:参数不能同时设置为可选和默认。
以下实例函数的参数 rate 设置了默认值为 0.50,调用该函数时如果未传入参数则使用该默认值:
calculate_discount
price
rate
0.50
discount
计算结果:
1000
0.30
===
void
500
300
剩余参数
有一种情况,我们不知道要向函数传入多少个参数,这时候我们就可以使用剩余参数来定义。
剩余参数语法允许我们将一个不确定数量的参数作为一个数组传入。
, ...
restOfName
join
employeeName
Joseph
Samuel
Lucas
MacKinzie
函数的最后一个命名参数 restOfName 以 ... 为前缀,它将成为一个由剩余参数组成的数组,索引值从0(包括)到 restOfName.length(不包括)。
addNumbers
...
nums
sum
for
<
length
++
和为:
10
_i
arguments
和为: 6
和为: 50
匿名函数
匿名函数是一个没有函数名的函数。
匿名函数在程序运行时动态声明,除了没有函数名外,其他的与标准函数一样。
我们可以将匿名函数赋值给一个变量,这种表达式就成为函数表达式。
语法格式如下:
var res = function( [arguments] ) { ... }
不带参数匿名函数:
hello world
带参数匿名函数:
res
12
24
匿名函数自调用
匿名函数自调用在函数后使用 () 即可:
Hello!!
构造函数
TypeScript 也支持使用 JavaScript 内置的构造函数 Function() 来定义函数:
var res = new Function ([arg1[, arg2[, ...argN]],] functionBody)
参数说明:
arg1, arg2, ... argN
:参数列表。
functionBody
:一个含有包括函数定义的 JavaScript 语句的字符串。
myFunction
new
Function
return a * b
递归函数
递归函数即在函数内调用函数本身。
举个例子:
从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?"从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?'从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?……'"
factorial
<=
停止执行
调用自身
输出 720
720
Lambda 函数
Lambda 函数也称之为箭头函数。
箭头函数表达式的语法比函数表达式更短。
函数只有一行语句:
( [param1, param2,…param n] )=>statement;
以下实例声明了 lambda 表达式函数,函数返回两个数的和:
foo
=>
100
输出结果为 110
110
函数是一个语句块:
( [param1, param2,…param n] )=> {
// 代码块
我们可以不指定函数的参数类型,通过函数内来推断参数类型:
func
typeof
==
是一个数字
是一个字符串
Tom
12 是一个数字
Tom 是一个字符串
单个参数
()
是可选的:
display
输出为
输出为 12
无参数时可以设置空括号:
disp
Function invoked
函数重载
重载是方法名字相同,而参数不同,返回类型可以相同也可以不同。
每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。
参数类型不同:
function disp(string):void;
function disp(number):void;
参数数量不同:
function disp(n1:number):void;
function disp(x:number,y:number):void;
参数类型顺序不同:
function disp(n1:number,s1:string):void;
function disp(s:string,n:number):void;
如果参数类型不同,则参数类型应设置为
any
参数数量不同你可以将不同的参数设置为可选。
以下实例定义了参数类型与参数数量不同:
s1
n1
abc
xyz
undefined
篇笔记
写笔记
#0
   马骏
  143***4768@qq.com
140
定义函数重载需要定义
重载签名
和一个
实现签名
重载签名定义函数的形参和返回类型,没有函数体。一个函数可以
有多个
重载签名(不可调用)
let suits = ["hearts", "spades", "clubs", "diamonds"];
// 定义重载签名
function greet(person: string): string;
function greet(persons: string[]): string[];
// 定义实现签名
function greet(person: unknown): unknown {
if (typeof person === 'string') {
return `Hello, ${person}!`;
} else if (Array.isArray(person)) {
return person.map(name => `Hello, ${name}!`);
throw new Error('Unable to greet');
console.log(greet(suits[0]));
console.log(greet(suits));
js 编译后实际代码:
var suits = ["hearts", "spades", "clubs", "diamonds"];
// 实现签名
function greet(person) {
return "Hello, ".concat(person, "!");
else if (Array.isArray(person)) {
return person.map(function (name) { return "Hello, ".concat(name, "!"); });
马骏
2年前 (2021-12-29)
点我分享笔记
笔记需要是本篇文章的内容扩展!
文章投稿,可点击这里
注册邀请码获取方式
分享笔记前必须
取消
分享笔记
昵称
昵称 (必填)
邮箱
邮箱 (必填)
引用地址
分类导航
HTML / CSS
HTML 教程
HTML5 教程
CSS 教程
CSS3 教程
Font Awesome 教程
Foundation 教程
JavaScript 教程
HTML DOM 教程
jQuery 教程
AngularJS 教程
AngularJS2 教程
Vue.js 教程
React 教程
jQuery UI 教程
jQuery EasyUI 教程
Node.js 教程
AJAX 教程
JSON 教程
Echarts 教程
Chart.js 教程
Highcharts 教程
Google 地图 教程
服务端
Python 教程
Python2.x 教程
Linux 教程
Docker 教程
Ruby 教程
Java 教程
C 教程
C++ 教程
Perl 教程
Servlet 教程
JSP 教程
Lua 教程
Rust 教程
Scala 教程
Go 教程
PHP 教程
数据结构与算法
Django 教程
FastAPI 教程
Zookeeper 教程
设计模式
正则表达式
Maven 教程
Verilog 教程
ASP 教程
AppML 教程
VBScript 教程
数据库
SQL 教程
MySQL 教程
PostgreSQL 教程
SQLite 教程
MongoDB 教程
Redis 教程
Memcached 教程
数据分析
NumPy 教程
Pandas 教程
Matplotlib 教程
Scipy 教程
R 教程
Julia 教程
移动端
Android 教程
Swift 教程
jQuery Mobile 教程
ionic 教程
Kotlin 教程
XML 教程
DTD 教程
XML DOM 教程
XSLT 教程
XPath 教程
XQuery 教程
XLink 教程
XPointer 教程
XML Schema 教程
XSL-FO 教程
SVG 教程
ASP.NET
ASP.NET 教程
C# 教程
Web Pages 教程
Razor 教程
MVC 教程
Web Forms 教程
Web Service
Web Service 教程
WSDL 教程
SOAP 教程
RSS 教程
RDF 教程
开发工具
Eclipse 教程
Git 教程
Svn 教程
Markdown 教程
网站建设
HTTP 教程
网站建设指南
浏览器信息
网站主机教程
TCP/IP 教程
W3C 教程
网站品质
Advertisement
反馈/建议
在线实例
·
HTML 实例
CSS 实例
JavaScript 实例
Ajax 实例
jQuery 实例
XML 实例
Java 实例
字符集&工具
HTML 字符集设置
HTML ASCII 字符集
JS 混淆/加密
PNG/JPEG 图片压缩
HTML 拾色器
JSON 格式化工具
随机数生成器
最新更新
SVG VScode
HTML AI 编程助手
C++ vector 容器
免费开源,无需 ...
C VScode
JavaScript VScode
Java AI 编程助手
站点信息
意见反馈
免责声明
关于我们
文章归档
关注微信
Copyright © 2013-2024
菜鸟教程
 
runoob.com
All Rights Reserved. 备案号:
闽ICP备15012807号-1
微信关注