一. 条件分支语句
条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句。
JS中条件分支的语句有三种
1. if条件分支语句
条件分支的主力语法,这个主力语法能够书写所有的条件分支语句。
1.1. if 判断语句
如果...
varscore=21;
if(score>=60){
console.log("你及格了");
}
如果分数超过60分就是及格,不超过懒得管你
1.2. if ...else... 分支语句
如果...否则...让程序出现分支,也就是现在有两条路可以走
varscore=33;
if(score>=60){
console.log("你及格了");
}else{
console.log("你不及格,回家等着被打屁股");
}
if英语里面的如果的意思,else就是否则的意思。
1.3. if...else if...else if...else
多分支if语句
如果……否则如果……否则如果……否则如果……否则……
用户会选择一个分支执行,选择这个分支了,就暗含了上一个分支没有满足:
varscore=90;
if(score>=80){
console.log("你很优秀");//不满足条件,所以不执行,走楼梯下楼
}elseif(score>=70){
console.log("良好,很不错");//走到这个楼层的,一定暗含小于85。这一楼层满足,跳楼了
}elseif(score>=60){
console.log("你及格了,继续加油");//不执行
}else{
console.log("你不及格,手伸出来")//不执行
}
楼层中else只能有一个。 else if可以有多个.
语法
if(条件1){ 条件1成立时,执行的程序 }else if(条件2){ 条件1不成立,并且条件2成立时,执行的程序 } …… else{ 以上所有条件都不成立时,执行的程序 }
1.4 if语句可以嵌套,
如果里面在套一层如果
varyuwen=61;
varshuxue=70;
if(yuwen>=80){
if(shuxue>=60){
alert("你没有挂科");
}
}
2. switch...case条件分支语句
switch case语句,switch case语句能干的,if else语句一定也能干。
switch(检测值){
case 值1 :
值1 与 检测值 相同时做的事情
break;
case 值2 :
值2 与 检测值 相同时做的事情
break;
case 值3 :
值3 与 检测值 相同时做的事情
break;
default :
默认要做的break;
}
那switch语句用于判断的是相等呢还是全等呢?
switch进行相同判断,底层是===的比较,连类型一起比较
switch这个语句,就只能干这种事儿。就是把一个值,看情况得几,执行不同的事儿。
3. 三元运算符
? :是一组运算符,这是JS中唯一一个需要三个元素参加的运算符。
条件 ? val1 : val2
表达式的值,要看条件是true还是false。如果条件是true,那么表达式的值就是val1。如果条件是false,表达式的值就是val2。
简单的看一个例子
console.log(true?8:6);//8
console.log(false?8:6);//6
三目运算是if,else语句的一种简化形式
if(条件){
条件成立,执行程序1
}else{
条件不成立,执行程序2
}
上面的if,else语句可以简写成以下的三目运算
条件?执行程序1:执行程序2;
总结:
条件分支的语句一共有3种,
if……else if…… (必须立即想到!这个东西无敌)
switch case (某一方面很擅长,体现在了代码的清晰度上)
三元运算符 (赋值的时候,根据条件有两个可能的值,马上想到三元运算符)
&&短路写法 (经验问题,用的不熟悉没事)
但是 && ||短路写法也有一种选择的感觉,这样选算就是4种。
二. 条件循环语句
JS中流程控制的语句,就两个:条件分支、循环语句。靠这两种语句,就能完成所有的程序。
循环语句是一系列反复执行直到符合特定条件的命令。
循环语句能够解决大量的类似语句书写。
1. for循环语句
作用:
for循环的作用是重复执行一段程序,能够解决大量的类似语句书写。
for(vari=1;i<=99;i++){
console.log("我很爱你们很很多次");
}
书写需要注意:
最最容易犯的语法错误: 括号中最后一个语句没有分号
for(vari=1;i<=99;i++;){// 这里是错误的写法
console.log("第"+i+"次说,我很爱你们");
}
1.1 for循环的本质,必须搞清楚:
for(1,2,4){ 3 } 5
for(vari=1;i<=99;i++;){// 这里是错误的写法
console.log("第"+i+"次说,我很爱你们");
}
console.log("我是循环结束后的语句")
1 => 2(真) => 3 => 4 => 2(真) => 3 => 4 ...... => 4 => 2(为假时) =>结束循1
1. 2.for循环里的break 和 continue 语句
a: break语句
结束整个循环
作用:break下面的程序不执行,步长累加不执行,整个for循环结束
for(vari=1;i<=100;i++){
console.log(i);
if(i==5){
break;//找到了一个,就立即终止循环
}
}
// 结果为 1,2,3,4,5
b continue语句
结束本轮循环
作用:continue下面的程序不执行,执行步长累加,开始下一轮循环
for(vari=1;i<=10;i++){
if(i==5){
continue;
//当i为5的时候,立即终止执行后面的console语句,直接i为6了。
}
console.log(i);
}
// 1,2,3,4,6,7,8,9,10
break和continue的目的,就是优化算法的。
2. while 语句
while循环,是for循环的一种简化形式
语法:
设置循环变量;
while(循环执行的条件){
语句块
}
varn=1;
while(n<=10){
console.log(n);
n++;
}
如果判断条件为假,那么代码块中的语句将一次都不会执行
其实很像for循环的变体
varn=1;
for( ;n<=10; ){
console.log(n);
n++;
}
3. do...while语句
和while语句相似,都是for的变体,,do就是做,while就是当
vari=1;
do{
console.log(i);
i++;
}while(i<=10)
语法:
do{
①语句
}while(②条件表达式)
程序一开始就会执行一次①,然后验证②是否为真,如果是真,继续执行①……假,跳出循环
不过do..while是一个后置验证,先执行后验证,怎么着都会执行一次:
例子:
do{
console.log("你是谁?");
}while(false)
这里应该是至少会打印一次哈哈
总结一下, JS中的循环语句有3个
for( ; ; ){ //注意括号内是三条语句,要用两个分号隔开
}
while(){
}
do{
}while()