(七)JavaScript 流程控制语句

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>

版权声明:本文为weixin_46227563原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。