1.流程控制结构
1.1顺序结构
1.2分支结构
a) if 的结构
if (条件判断){
判断正确后,执行语句;
}
b)if else 结构:如果执行体语句只有一条(只有一个分号)可以省略花括号
if(判断条件){
语句1;//判断正确执行
}
else{
语句2;//判断错误执行
}
c)if -- else if… -- else :
if ( ) {
语句1;
}
else if(){ 语句2; }
else if(){ 语句3; }
else{ 语句4 ; }//如果上面的有成立,就退出;如果没有就执行语句4
- 多选一,不是每个语句都要执行
- 不是js的标准语法 是程序员利用js纠错功能实现了其他语言的功能
- 相当于 if else 语句中的else 嵌套 if else 语句,外面的else 花括号可以省略
易错误点:
1)if(){} ; if(){} ; if(){};每个if都要执行;如果if使用改变了全局变量的值,而该变量又是需要不改变值供多if判断或使用
2)
类型的判断:a < b < c;(要写成 a<b && b <c 不出错)
1.先判断 a < b 是true 还是 false ,如果是true 为1、false 为0;
2.再用 1 或者 0 与 c比较 ,得出结果
3)同一个业务用else if 结构;不要用if if if 即多if 结构
d)三元表达式
var n=条件表达式 ? 表达式1:表达式2
比if结构简单,程序简单时推荐使用
e)switch语句(特定值的选择判断)
switch(表达式){
case value1:
语句1;
break;
case value2:
语句2;
break;
case value3:
语句3;
break;
...
default:
无匹配执行的语句
}
1.在开发里面,括号里的表达式经常写成变量,判断变量的值等于那个value
3.break 如果当前case没有写;不会退出,继续执行下一个case里面的语句
2.我们的值和case里面的值匹配是用全等(===),且数据类型一致
1.3循环结构
a)for循环
- 常用功能:遍历数据容器,主要用于把某些代码循环若干次,通常和计数有关系
- 语法结构:
for(初始变量;条件表达式;操作表达式){
//循环体
}
- for循环执行顺序:
为了方便分析,对 for(A;B;C){D};进行分析
注意:
- 初始变量A只执行一次
- C是一个循环内最后执行的
- D遇到break后跳出循环,C没有被运行,
- D遇到continue,结束D后面代码的执行,跳到C运行
- i++是先取值,再存值
b)双重for循环(n*n排列)
for( ){
for( ) { };
}
案例:倒三角打印
案例:打印九九乘法表
c)while循环
- 循环体里面应该有计数器更新
- while可以做一些比较复杂条件判断;只要为true就会一直循环;但是总会有一次执行会让它停下来
- while可以不知道循环次数;for循环是知道循环次数
案例理解:
d)do while循环
e)continue
f)break
再循环体中;遇到break就退出当前的整个循环。
例子1:研究遇到break后;i的值
for ( var i = 0; i < 5; i++){
if ( i == 4){
console.log(i)
break;
}
else{
console.log(i)
}
}
// i值为4;当i为4时候就退出循环;不再i++
// 无break时候;i为4;要执行i++,i为5
g)label 语法;给代码块取个名字
// j == 3的时候,break for1:break外层循环的意思
for1:
for (var i = 0; i < 5; i++){
for2:
for (var j = 0; j < 5; j++){
if(j == 3){
// 若是continue for1;则打印前012列, j=3 和 j= 4 永远不执行
break for1;
}
else{console.log(i,j)}
}
}
h)try-catch-finally语句
异常对象e里面有两个属性name和message,分别代表错误类型和错误描述信息。
瞄一眼小案例: