上一篇:15.JS基础(一)
选择结构
- 选择结构用于判断给定的条件,根据判断的结果来控制程序的流程
if 语句
- 根据表达式的判断结果(true|false),选择执行符合条件的语句
// 语法
if (表达式) {
语句1
}
语句2
// 如果语句1只有一条,可以省略{}大括号(不推荐)
if (表达式) {
语句1
} else {
语句2
}
语句3
// 如果语句1和语句2分别只有一条,可以省略{}大括号(不推荐)
if (表达式1) {
语句1
} else if (表达式2) {
语句2
} else {
语句3
}
语句4
// else if 可以有一个或多个,else非必须出现
switch 语句
- 根据不同的条件来决定执行不同的代码块
switch(表达式){
case 值1:
执行代码块 1
break;
case 值2:
执行代码块 2
break;
default:
与 case 1 和 case 2 不同时,执行此处代码
}
其他语句
- 工作原理:
- 首先设置表达式(通常是一个变量)
- 随后表达式的值会与结构中的每个 case 的值做比较
- 如果存在匹配,则与该 case 关联的代码块会被执行
- 使用 break 来阻止代码自动地向下一个 case 运行
- 注:break关键字会导致代码执行流跳出switch语句
var age = 15
方法一:
switch(age){
case 12:
console.log( '12岁' )
break // 跳出switch语句,结束语句
case 13:
console.log( '13岁' )
break // 跳出switch语句,结束语句
case 14:
console.log( '14岁' )
break // 跳出switch语句,结束语句
default:
console.log( '其他岁数' )
}
方法二:
if (age == 12){
console.log( '12岁' )
} else if (age == 13){
console.log( '13岁' )
} else if (age == 14){
console.log( '14岁' )
} else {
console.log( '其他岁数' )
}
// 利用case穿透
var age = 14
switch(age){
case 12:
console.log( '12岁' )
break // 跳出switch语句,结束语句
case 13:// 利用case穿透
case 14:
case 15:
console.log( '13 14 15岁' )
break // 跳出switch语句,结束语句
default:
console.log( '其他岁数' )
}
循环结构
-
循环:指事物周而复始地运动或变化
-
使用循环结构的一些共同特征:
1.有规律性的重复操作
2.重复执行的代码很相似 -
如:输出10次’hello world’
console.log('hello world 1');
console.log('hello world 2');
console.log('hello world 3');
......
console.log('hello world 10');
- 这样处理起来非常的费时费力,同时也会有非常多的冗余代码!
- 假如我要输出 100次 1000次 ‘hello world’ 呢??
for 循环
语法:
for (表达式1; 表达式2; 表达式3) {
循环体4;
}
- 表达式1:为不参与循环的单次表达式,用来给循环控制变量赋初值
- 表达式2:一般是一个关系表达式,作为循环条件(设置终止值)
- 表达式3:一般为循环变量增量或减量(步长)
- 循环体4:需要重复执行的代码
for (var i = 0; i < 5; i++) { // 增量循环
console.log(i);
}
for (var i = 5; i >= 1; i--) {// 减量循环
console.log(i);
}
注意:
-
for()括号中的表示式皆可以省略,但分号不可省略
-
省略了表达式2(循环条件), 若不做其它处理则成为死循环
-
死循环:没有终止条件并一直执行的循环即为死循环
-
for循环的嵌套,可以简单的理解为行和列的关系
-
循环的顺序:1-2-4-3→2-4-3→2-4-3→……→2-4-3
流程控制
- break关键字使用在循环中,代表终止并跳出循环
- continue关键字使用在循环中,代表跳过本次循环
- 结合 for 和 if 使用,实现跳过某次循环以及符合某个条件退出循环
while 循环
- while 循环只要指定条件为 true,循环就可以一直执行代码
语法:
while (条件){
需要执行的代码
}
案例:小明有68元,一碗面8元,用while输出能吃多少碗面,每次吃完还剩下多少钱?
do-while 循环
- do/while 循环是 while 循环的变体
- 先执行一次 do {} 代码块,再执行 while () 判断
var i = 0
do{// 先执行再判断
console.log(i)
i++
} while(i < 5)
案例:小明只有1元,只能吃霸王餐!
for、while 和 do-while 的区别
- for 循环一般用在循环次数可以确定的情景
- while 循环一般用在循环次数未知的情景
- while 循环是先判断,再执行,有可能一次都不执行
- do/while 循环是先执行,再判断,至少执行一次代码块
思考面试题:
var k=0;
for(var i=0, v=0; i<6, v<9; i++, v++){
k = i + v;
}
console.log(k);
var k=0;
for(var i=0, v=0; i<9, v<6; i+=2, v++){
k = i + v;
}
console.log(k);
调试语句
- debugger语句用于停止JS
- debugger语句可以放在代码的任何位置用以脚本中止执行,类似在代码中设置断点
for (var i = 0; i < 5; i++) {
console.log(i)
debugger
}
异常处理
- ECMA规范了一些错误类型,其中
Error
是基类,其他错误类型是子类,都继承了基类- Error:自定义错误,可以通过
thorw语句
抛出错误 - SyntaxError:语法错误,出现语法错误时抛出
- ReferenceError:引用错误,读取不存在的变量时抛出
- TypeError:类型错误,值的类型发生错误的时候抛出
- RangeError:范围错误,数值超出合法范围时抛出
- Error:自定义错误,可以通过
try/catch语句
用于处理代码中可能出现的错误信息- try 语句允许我们定义在执行时进行错误测试的代码块
- catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块
console.log( '程序1' )
try {
console.lag( '程序2' )
} catch (err) {
console.log( err ) //错误对象
console.log( err.name ) //错误名称
console.log( err.message ) //错误信息
// throw err // 抛出错误
}
console.log( '程序3' )
下一篇:17.JS基础(三)
🌸友情推荐:全栈大佬笔记 Android领域肥宅