(七)JavaScript 流程控制语句
2024-06-26 12:46:01
文章目录
- JavaScript 流程控制语句
- 一、选择语句
- 1. if 语句
- (1) if 语句的基本使用
- (2) if else if 多条件分支
- 2. switch 语句
- (1) switch 语句的基本使用
- 3. 三元运算符
- (1) 三元运算符
- (2) 三元运算符的基本使用
- 二、循环语句
- 1. for 循环语句
- (1) 语法
- (2) 流程
- 2. while 循环语句
- (1) 语法
- (2) 流程
- (3) 特性
- 3. do while 循环语句
- (1) 语法
- (2) 流程
- (3) 特性
- 4. for-in 循环语句
- (1) 语法
- (2) 作用
- (3) 注意事项
- 三、跳转语句
- 1. break 语句
- 2. continue 语句
- 3. return 语句
- 四、异常处理语句
- 1. throw 语句
- 2. try 语句
- 3. catch 语句
- 4. finally 语句
- 6. 随机数函数
- 二、算法
- 1. 什么是算法
- 2. 优秀算法的要求
- 五、深克隆和浅克隆
- 1. 浅克隆
- 2. 深克隆
JavaScript 流程控制语句
一、选择语句
1. if 语句
(1) if 语句的基本使用
- if 语句是最简单的条件语句,也称选择语句,通常和 else 一起使用,表示 如果…就…否则…
- 单行 if 语句:如果 if 语句体中只有一行语句,可以省略大括号和换行
(2) if else if 多条件分支
- else if() 条件分支“暗含”不符合之前所有条件,要理解什么叫“否则如果”
2. switch 语句
(1) switch 语句的基本使用
- switch 语句的用途:当一个变量被分类讨论的情形
- 在 switch() 的圆括号中一般是一个变量名,这个变量将被分类讨论
- case 表示“情况”,它后面没有圆括号,直接跟一个值
程序会依次将 case 后面的值与 switch 圆括号中的值进行全等比对,如果比对相同,则执行这条 case 冒号后面的语句
default 表示默认情况 - 多条 case 可以共用同一个语句体
- 在执行了某一个分支后要书写 break 来跳出语句体
如果不书写 break,则后面的所有 case 都将被视为匹配,直至遇见 break
3. 三元运算符
(1) 三元运算符
- 问号前面是 判断的条件,问号后面用冒号隔开两个表达式,当条件表达式为真实调用表达式 1,为假时调用表达式 2
(2) 三元运算符的基本使用
- 用途:根据某个条件是否成立,在两个不同的值中选择变量的值
二、循环语句
1. for 循环语句
(1) 语法
for(循环变量=初值;循环条件;递增/递减计数器) {循环代码段
}
(2) 流程
- 用循环变量初始值与循环条件相比较,确定返回值
- 如果返回值为 true,则执行循环体
- 执行完一次后进行 递增 / 递减 运算
- 将运算结果与循环条件相比较
- 如果返回值为 true 则继续执行循环体
如果返回值为 false 则退出循环体
2. while 循环语句
- while 语句也是一种循环结构,它事先不指定循环开始、结束的范围,只要测试条件满足,就一直执行循环体
(1) 语法
while(条件表达式) {循环执行代码段
}
(2) 流程
- 判断条件表达式的值
- 当值为 true 的时候循环执行代码段
- 当值为 false 的时候退出循环体
(3) 特性
- 先检查条件,再执行循环
- 若条件不满足则一次循环也不执行
- 一个动作被重复执行到满足某个条件时
3. do while 循环语句
- do while 循环是一种“后测试循环语句”
for 循环和 while 循环是“先测试条件是否满足,然后执行循环体”
(1) 语法
do {循环执行代码段
} while(条件表达式)
(2) 流程
- 先执行循环体内代码段在进行判断
- 如果表达式的值为 true,则重复执行代码段
- 如果表达式的值为 false,则退出循环体
(3) 特性
- 先执行循环体,再测试条件是否满足
- 循环体内代码至少执行一次
- 希望一个动作至少被执行一次时使用
4. for-in 循环语句
(1) 语法
for(声明变量 in 对象) {代码段
}
(2) 作用
- 枚举对象属性
(3) 注意事项
- 循环输出的属性顺序不可预知
- 对象的值不能是 null 或 undefined
三、跳转语句
1. break 语句
- break 表示立即终止循环,在 for 循环和 while 循环中都可以使用
2. continue 语句
- continue 用于跳过循环中的一个迭代,并继续执行循环中的下一个迭代
3. return 语句
- return 用于终止函数体的运行,并返回一个值
四、异常处理语句
1. throw 语句
- 主动抛出异常
2. try 语句
- 指明需要处理的代码段
3. catch 语句
- 捕获异常
4. finally 语句
- 后期处理
6. 随机数函数
Math.random()
:得到 0 到 1 之间的小数- 得到 [a, b] 区间的整数,公式:
parseInt(Math.random() * (b -a + 1)) + a
二、算法
1. 什么是算法
- 算法(Algorithm)是指解题方案的准确而完整地描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入在有限时间内获得所要求的输出
- 算法就是把一个问题拆解为计算机能够一步一步执行的步骤
- 计算机的流程控制语句:顺序执行、选择语句、循环语句
2. 优秀算法的要求
- 正确性
- 健壮性
- 可读性
五、深克隆和浅克隆
- 使用
var arr2=arr1
的语法不会克隆数组
1. 浅克隆
- 浅克隆:只克隆数组的第一层,如果是多维数组,或者数组中的项是其他引用类型值,则不可隆其它层,克隆的项会“藕断丝连”
- 实现浅克隆:准备一个空的结果数组,然后使用 for 循环遍历原数组,将遍历到的项都推入结果数组
2. 深克隆
- 深克隆:克隆数组的所有层,要使用递归技术
- 实现深克隆:使用递归思想,整体思路和浅克隆类似,但稍微进行一些改动:如果遍历到的项是基本类型值,则直接推入结果数组;如果遍历到的项又是数组,则重复执行浅克隆的操作
<script>function deepClone(arr) {//结果数组var result = [];//遍历数组的每一项for (var i = 0; i < arr.length; i++) {//如果遍历到的项是数组if (Array.isArray(arr[i])) {//递归result.push(deepClone(arr[i]));} else {result.push(arr[i]));}}return result;}
</script>
(七)JavaScript 流程控制语句相关推荐
- JavaScript流程控制语句
JavaScript流程控制语句 4.1.语句的定义 在ECMAScript 中,所有的代码都是由语句来构成的.一行代码就是一条简单语句.形式上可以是单行语句,或者由一对大括号"{}&q ...
- 数据库原理与应用(SQL Server)笔记 第七章 流程控制语句、系统内置函数
目录 一.流程控制语句 (一)BEGIN...END语句块 (二)条件语句 (三)循环语句 1.WHILE语句 2.BREAK语句和CONTINUE语句 (四)无条件转移语句 (五)返回语句 (六)等 ...
- [JavaWeb-JavaScript]JavaScript流程控制语句
流程控制语句: 1. if...else...2. switch:* 在java中,switch语句可以接受的数据类型: byte int shor char,枚举(1.5) ,String(1.7) ...
- JavaScript—流程控制语句的合集
目录 流程控制 条件判断语句 流程控制 条件判断语句 条件分支语句 循环语句 条件判断语句 if语句 语法:if(条件表达式){语句}-------if(a > 10){alert('a比10大 ...
- JavaScript 流程控制语句
1.if语句 1 <script> 2 $(document).ready(function(){ 3 $("#Button1").click(function(){ ...
- 从零开始学WEB前端——JavaScript流程控制语句
- web前端-JavaScript流程控制语句(条件判断,条件分支和循环语句)
- 自学Java(随时放弃十 流程控制语句①)
Java基础语法 (七)流程控制语句 学了这么多,终于拉到一点点编程的小手手了,有没有很兴奋? 如果大家有同感,那么恭喜你,接下去让我们再接再厉,共创辉煌. 对不起,单位宣传文章写多了 ✿✿ヽ(°▽° ...
- JavaScript学习笔记01【基础——简介、基础语法、运算符、特殊语法、流程控制语句】
w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...
最新文章
- 转: EclipseIDE开发 for C++
- php遍历视频文件,php使用glob函数遍历文件和目录详解
- 除掉字符串里面相同的字符
- qt为lineedit添加背景图片代码_Qt中事件的理解(2)
- 四、物理优化(4)分区视图
- 陆奇:欢迎毛圣博加入奇绩,成为奇绩创坛合伙人
- SQL2005恢复只有mdf文件的数据库
- kodi教程 linux,Kodi 设置教程 | Homepage of Zhikun Zhang
- B站郝斌C语言指针笔记
- 国产三极管与进口三极管的区别有哪些
- python从入门到入魔(肝3天总结的3万字经验)
- 安装python与编译工具vs code(中文版)和pycharm(中文版)
- java_获得用户显示器大小
- 【服务端知识点】MAC OSX 安装MongoDB
- pytorch锁死在dataloader(训练时卡死)
- SpringBoot中通过接口下载resources下的文件
- powershell自定义字体
- CentOS7没有图形化界面,怎么安装图形化界面
- 杨浦搬场公司搬家过程中的注意事项
- 数据库连接池-c3p0