TypeScript教程(五)条件语句,循环,函数
一、条件语句
条件语句基于不同的条件来执行不同的动作
1.if语句:只有当指定条件为true时,使用该语句来执行代码
2.if...else语句:当条件为true时执行代码,当条件为else时执行其他代码
3.if...else if...else语句:使用该语句来选择多个代码块之一来执行
4.switch语句:使用该语句来选择多个代码块之一来执行
1.if语句
由一个布尔表达式后跟一个或多个语句组成
语法:
if(boolean_expression){# 在布尔表达式 boolean_expression 为 true 执行
}
如果布尔表达式为true,则if内的语句块会被执行,否则if语句后的第一组代码将被执行
2.if...else语句
一个if语句后面一个可选的else语句,else在布尔表达式为false时被执行
语法
if(boolean_expression){# 在布尔表达式 boolean_expression 为 true 执行
}else{# 在布尔表达式 boolean_expression 为 false 执行
}
3.if...else if...else语句
在执行多个判断条件时有用
语法
if(boolean_expression 1) {# 在布尔表达式 boolean_expression 1 为 true 执行
} else if( boolean_expression 2) {# 在布尔表达式 boolean_expression 2 为 true 执行
} else if( boolean_expression 3) {# 在布尔表达式 boolean_expression 3 为 true 执行
} else {# 布尔表达式的条件都为 false 时执行
}
注:
1.一个if判断语句可以有0或1个else语句,必须在if...else后面
2.一个if判断语句可以有0个或者多个else...if,必须在else之前
3.一旦执行了else...if里的代码,后面的else...if或else将不再执行
4.switch...case语句
允许测试一个变量等于多个值时的情况,每个值为一个case,且被测试的变量会对每个switch case进行检查
语法:
switch(expression){case constant-expression :statement(s);break; /* 可选的 */case constant-expression :statement(s);break; /* 可选的 *//* 您可以有任意数量的 case 语句 */default : /* 可选的 */statement(s);
}
规则:
1.switch 语句中的 expression 是一个要被比较的表达式,可以是任何类型,包括基本数据类型(如 number、string、boolean)、对象类型(如 object、Array、Map)以及自定义类型(如 class、interface、enum)等。
2.在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。
3.case 的 constant-expression 必须与 switch 中的变量 expression 具有相同或兼容的数据类型。
4.当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。
5.当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。
6.不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。
7.一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default 关键字则表示当表达式的值与所有 case 值都不匹配时执行的代码块。default case 中的 break 语句不是必需的。
二、循环
1.for循环
用于多次执行一个语句序列,减缓管理循环变量的代码
语法:
for ( init; condition; increment ){statement(s);
}
流程解析:
1.init会先被执行,且只会执行一次,这一步允许声明并初始化任何循环控制变量,也可以在这里不屑任何语句,一个;即可
2.然后会判断condition,如果为true,则执行循环主体,如果为false,则不执行主体,且控制流会跳转到紧接着for循环的下一条语句
3.在执行完for循环主体后,控制流会跳回上面的increment语句,允许更新循环控制变量,可以留空
4.条件再次被判断,如果为true,则执行循环,过程不断重复,在条件为false时,结束循环
2.for...in循环
用于一组值的集合或列表进行迭代输出
语法:
for (var val in list) { //语句
}
val需要为string或any类型
3.for...of,forEach,every和some循环
1.for...of语句创建一个循环来迭代可迭代的对象,在ES6中引入的for..of循环,以替代for...in和forEach(),并支持新的迭代协议,for...of允许遍历Arrays(数组),Strings(字符串),Maps(映射),Sets(集合)等可迭代的数据结构等
let someArray = [1, "string", false];for (let entry of someArray) {console.log(entry); // 1, "string", false
}
2.forEach,every和some是javaScript的循环语法,TypeScript为JavaScript的超集,所以支持
因为forEach在iteration中是无法返回的,所以可以使用every和some来取代forEach
//forEach循环
let list = [4, 5, 6];
list.forEach((val, idx, array) => {// val: 当前值// idx:当前index// array: Array
});
//every循环
let list = [4, 5, 6];
list.every((val, idx, array) => {// val: 当前值// idx:当前index// array: Arrayreturn true; // Continues// Return false will quit the iteration
});
4.while循环
while语句在指定条件为true时,重复执行语句或语句组,循环主体之前会先测试条件
语法:
while(condition)
{statement(s);
}
statement(s)可以是一个单独的语句,也可以是几个语句组成的代码块
condition可以是任意的表达式,当条件为true时执行循环,当条件为false时,循环退出
5.do...while循环
不像for和while循环,他们是循环头部测试循环条件,do...while是在尾部测试循环条件
语法:
do
{statement(s);
}while( condition );
因为条件表达式语句在尾部,所以循环中的statement(s)会在条件被测试之前至少执行一次
如果条件为true,控制流会跳转回上面的do,然后重新执行循环中的statement(s),这个过程会不断重复,直到条件为false为止
6.break语句
两种特性:
1.break出现在一个循环体内时,循环会立刻终止,切程序流会紧接着循环下一条语句
2.可用于终止switch语句中的一个case
如果使用的是嵌套循环,break语句会停止执行最内层的循环,然后开始执行模块之后的下一行代码
语法:
break;
7.continue语句
continue语句有点像break语句,但是他是跳过当前循环中的代码,强制执行下一次循环
对于for循环,continue语句执行后自增语句仍会执行,对于while和do...while循环,continue语句会重新执行条件判断语句
语法:
continue;
8.无限循环
一直在运行不会停止的循环,for和while都可以创建无限循环
for创建无限循环语法格式:
for(;;) { // 语句
}
while创建无限循环语法格式:
while(true) { // 语句
}
三、函数
函数是一组一起执行一个任务的语句
相关文章:

TypeScript教程(五)条件语句,循环,函数
一、条件语句 条件语句基于不同的条件来执行不同的动作 1.if语句:只有当指定条件为true时,使用该语句来执行代码 2.if...else语句:当条件为true时执行代码,当条件为else时执行其他代码 3.if...else if...else语句:…...

vue使用jsplumb 流程图
安装jsPlumb库:在Vue项目中使用npm或yarn安装jsPlumb库。 npm install jsplumb 创建一个Vue组件:创建一个Vue组件来容纳jsPlumb的功能和呈现。 <template><div style"margin: 20px"><div style"margin: 20px">&l…...

【BASH】回顾与知识点梳理(二十八)
【BASH】回顾与知识点梳理 二十八 二十八. 例行性工作排程(crontab)28.1 什么是例行性工作排程Linux 工作排程的种类: at, cronCentOS Linux 系统上常见的例行性工作 28.2 仅执行一次的工作排程atd 的启动at 的运作方式实际运作单一工作排程at 工作的管理batch&…...

LangChain源码逐行解密之系统(二)
LangChain源码逐行解密之系统 20.2 serapi.py源码逐行剖析 我们可以看一下Google查询的例子,在LangChain中有多种实现的方式。 如图20-5所示,在utilities的serpapi.py代码文件中实现了SerpAPIWrapper。 图20- 5 utilities的serpapi.py的SerpAPIWrapper 在langchain目录的se…...

QT的设计器介绍
设计器介绍 Qt制作 UI 界面,一般可以通过UI制作工具QtDesigner和纯代码编写两种方式来实现。纯代码实现暂时在这里不阐述了在后续布局章节详细说明,QtDesigner已经继承到开发环境中,在工程中直接双击ui文件就可以直接在QtDesigner设计器中打…...

[LitCTF 2023]Ping
因为直接ping会有弹窗。这里在火狐f12,然后f1选禁用javascript,然后ping 然后输入127.0.0.1;cat /flag 得到flag, 查看其他大佬的wp ,这里还可以抓包。但是不知道为什么我这里的burp 用不了...

Spring Cloud面试突击班1
Spring Cloud面试突击班1 1.Spring Cloud 中有哪些组件,整个项目架构中我们的重点又有哪些? Spring Cloud 是一套基于Spring Boot的微服务解决方案。 Spring Cloud生态在国内主流的分为两套,一套是以奈飞开源的Spring Cloud Netfilx 20%&a…...

线上售楼vr全景看房成为企业数字化营销工具
在房地产业中,VR全景拍摄为买家提供了虚拟看房的全新体验。买家可以通过相关设备,远程参观各个楼盘的样板间和实景,感受房屋的空间布局和环境氛围,极大地提高了购房决策的准确性。对于房地产开发商和中介机构来说,VR全…...

“深入探索JVM内部机制:解密Java虚拟机原理“
标题:深入探索JVM内部机制:解密Java虚拟机原理 摘要:本文将深入探索Java虚拟机(JVM)的内部机制,揭示其工作原理和关键组成部分,包括类加载、内存管理、垃圾回收、即时编译和运行时数据区域等。…...

最长 上升子序列
大家好 我是寸铁 希望这篇题解对你有用,麻烦动动手指点个赞或关注,感谢您的关注 不清楚蓝桥杯考什么的点点下方👇 考点秘籍 想背纯享模版的伙伴们点点下方👇 蓝桥杯省一你一定不能错过的模板大全(第一期) 蓝桥杯省一你一定不…...

Nginx的介绍
本资料转载于传智教育-解锁你的IT职业薪未来,仅用于学习和讨论,如有侵权请联系 视频地址:04-Nginx的优点_哔哩哔哩_bilibili 资源文档:链接:https://pan.baidu.com/s/1RlFl92FdxRUqc858JSxPSQ 提取码:12…...

[杂项]奥特曼系列影视列表大全
1966年:《奥特曼》「初代奥特曼」 1967年:《奥特赛文》 1971年:《归来的奥特曼》「杰克奥特曼」 1972年:《艾斯奥特曼》 1973年:《泰罗奥特曼》 1974年:《雷欧奥特曼》 1979年动画版:《乔尼亚斯…...

java代码日记--java 基础语法
java代码日记 在线运行 本地运行环境配置 Java 实例 实战 java8 Java 基础语法 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。 下面简要介绍下类、对象、方法和实例变量的概念。 对象:对象是类的一个实例&…...

Spring中的IOC与DI-细胞内物质与传递
对IOC的认识 Spring Inversion of Control简称Spring IOC,是一种设计原则,通过它可以实现对象之间的解耦。通过Spring DI(Dependency Injection)依赖注入实现对象生命周期管理,为开发者提供对象创建、使用方式。 Spring中的Bean 在Spring框…...

【探索Linux】—— 强大的命令行工具 P.5(yum工具、git 命令行提交代码)
阅读导航 前言一、软件包管理器 yum1.yum的概念yum的基本指令使用例子 二、git 命令行提交代码总结温馨提示 前言 前面我们讲了C语言的基础知识,也了解了一些数据结构,并且讲了有关C的一些知识,也学习了一些Linux的基本操作,也了…...

jdbc 使用rewriteBatchedStatements=true后,报错
jdbc 使用rewriteBatchedStatementstrue后,报错了 rewriteBatchedStatementstrue解释 rewriteBatchedStatementstrue是一个配置选项,它影响MySQL JDBC驱动程序的行为。JDBC是Java数据库连接的标准。当你使用Java程序连接MySQL数据库时,你需要…...

第G1周:生成对抗网络(GAN)入门
🍨 本文为[🔗365天深度学习训练营]内部限免文章(版权归 *K同学啊* 所有) 🍖 作者:[K同学啊] 一、理论基础 生成对抗网络(Generative Adversarial Networks, GAN)是近年来深度学习领域…...

Stable Diffusion基础:ControlNet之图片高仿效果
今天继续给大家分享AI绘画中 ControlNet 的强大功能,本次的主角是 Reference,它可以将参照图片的风格迁移到新生成的图片中,这句话理解起来很困难,我们将通过几个实例来加深体会,比如照片转二次元风格、名画改造、AI减…...

TCGA数据下载推荐:R语言easyTCGA包
#使用easyTCGA获取数据 #清空 rm(listls()) gc() # 安装bioconductor上面的R包 options(BioC_mirror"https://mirrors.tuna.tsinghua.edu.cn/bioconductor") if(!require("BiocManager")) install.packages("BiocManager") if(!require("TC…...

JLSX 模版指令导出Excel
1. 官方相关链接 官网:https://jxls.sourceforge.net/reference/if_command.html JxlsAPI: https://jxls.sourceforge.net/javadoc/jxls/index.html Jxls POI: https://jxls.sourceforge.net/javadoc/jxls/index.html Jxls JExcel࿱…...

【制作npm包3】了解 tsconfig.json 相关配置
制作npm包目录 本文是系列文章, 作者一个橙子pro,本系列文章大纲如下。转载或者商业修改必须注明文章出处 一、申请npm账号、个人包和组织包区别 二、了解 package.json 相关配置 三、 了解 tsconfig.json 相关配置 四、 api-extractor 学习 五、npm包…...

【0基础入门Python笔记】一、python 之基础语法、基础数据类型、复合数据类型及基本操作
一、python 之基础语法、基础数据类型、复合数据类型及基本操作 基础语法规则基础数据类型数字类型(Numbers)字符串类型(String)布尔类型(Boolean) 复合数据类型List(列表)Tuple&…...

2023-08-18力扣每日一题
链接: 1388. 3n 块披萨 题意: 一个长度3n的环,选n次数字,每次选完以后相邻的数字会消失,求选取结果最大值 解: 这波是~~(ctrl)CV工程师了~~ 核心思想是选取n个不相邻的元素一定…...

mac M1安装opencv方法及类型报错解决
安装opencv: pip install opencv-python pip install --user opencv-contrib-python pip install opencv-python 4.5.2.54 numpy 1.25.2 安装过程中报错如下: python-类型错误:“numpy._DTypeMeta”对象不可下标 TypeError: ‘numpy._DTypeMeta’ obje…...

Screen终端管理工具
文章目录 Screen终端管理工具背景nohup介绍screen介绍安装screen查看终端新建终端退出终端进入终端删除会话帮助命令 总结 Screen终端管理工具 背景 对大佬只有膜拜,可能永远无法超越,在工作交接中大佬用到了一个screen启动了程序,这是什么…...

【python自动化办公】PysimpleGUI官网案例全部项目代码文件及运行截图
PysimpleGUI官网案例全部项目代码文件及运行截图 0 项目文件整体预览窗口1 pysimpleGUI下面所有元素2 pysimpleGUI下面所有元素示例3 加载多GIF图片4 使用PIL进行动态图片加载5 自动保存关闭时窗口位置信息6 绘制柱状图7 图像编码18 图像编码29 无边界窗口10 设置图片按钮11 按…...

9.处理this和防抖、节流
9.1 this指向-普通函数 普通函数的调用方式决定了this的值,即【谁调用this的值 指向谁】 普通函数没有明确调用者时this值为window,严格模式下没有调用者时this的值为undefined 9.2 this指向-箭头函数 箭头函数中的this与普通函数完全不同࿰…...

Spark操作Hive表幂等性探索
前言 旁边的实习生一边敲着键盘一边很不开心的说:做数据开发真麻烦,数据bug排查太繁琐了,我今天数据跑的有问题,等我处理完问题重新跑了代码,发现报表的数据很多重复,准备全部删了重新跑。 我:你的数据操作具备幂等性吗? 实习生:啥是幂等性?数仓中的表还要考虑幂等…...

【可变形卷积3】 DCNv2 安装
使用RTM3D 代码,CenterTrack代码需要用DCN 1、安装DCNv2 (1)github上最新版的DCNv2源码在"https://github.com/CharlesShang/DCNv2",但是该版本源码不支持PyTorch1.7,如果使其支持PyTorch1.7需要做以下修改…...

归并排序 与 计数排序
目录 1.归并排序 1.1 递归实现归并排序: 1.2 非递归实现归并排序 1.3 归并排序的特性总结: 1.4 外部排序 2.计数排序 2.1 操作步骤: 2.2 计数排序的特性总结: 3. 7种常见比较排序比较 1.归并排序 基本思想: 归并排序(MERGE-SORT)是建立在归并操作上的一种…...