-流程控制语句的基本概念:
-
一般,默认情况下,浏览器会按照书写的形式从上至下的顺序来执行程序中的每一行代码,但是还是不能够满足程序猿对开发的需求。
-
所以为了方便程序猿控制程序的运行流程,JavaScript中提供了3种流程结构,相对应的,不同的流程顺序可以实现不同的代码运行的流程,这三种流程结构分别为顺序,选择,循环三种基本的结构构造。
-
顺序结构:浏览器默认的流程结构,按照书写的顺序来从上至下的执行每一行代码。
-
选择结构:对给定的条件进行判断,在根据判断的结果来决定执行哪一行,哪一段的代码。
-
循环结构:在给定的条件成立的情况下,对某一段代码进行反复执行。
顺序结构是浏览器默认的流程结构,不用去更改。
选择结构:
-
if 第一种形式
如果条件表达式成立,就执行条件满足时执行的语句,否则不执行该语句。
if(条件表达式){
条件满足时执行的语句
}
▲ if 第一种形式 的特点:
当条件表达式为真的时候就会执行{ }中的所有的代码,但是只会被执行一次。
let i=3;
if(i>2){
console.log("条件成立");
}
-
if 第二种形式
格式为:
if(条件表达式){
条件成立时执行的语句
}else{
条件不成立时执行的语句
}
▲ if 第二种形式 的 特点:
当条件成立就执行if后面{ }中的代码,
当条件不成立就执行else后面{ }中的代码,
并且两个{ }只有一个会被执行,
并且只会被执行一次
// 声明一个名为a 的变量 ,将5赋值给a
let a=5;
// 条件表达式为a<3,条件不成立,所以控制台输出else后面{}中的内容
if(a<3){
console.log("条件成立");
}else{
console.log("条件不成立");
}
-
if第三种形式
格式为:
if(条件表达式){
条件一成立时执行的语句
}else if{
条件二成立时执行的语句
}
......
else{
前面的所有条件都不满足时执行的语句
}
▲ if第三种形式 的特点:
执行时会从上至下的依次判断每一个条件表达式,
哪一个条件表达式成立,就执行哪一个条件表达式{ }里面的代码。
如果前面所有的条件表达式的条件都不成立,那么就会执行else{ }里面的代码,
但是所有的{ }只有一个会被执行,而且只会被执行一次。
-if 的 注意点:
-
对于非布尔类型的数据,执行的时候会先转换为布尔类型在进行判断
-
对于== 和 === 的判断,执行的时候建议将变量名称写在前面(对于新手来说)
let num=6;
// 要求num为6的时候,输出语句1。
// 如果在项目开发中,不小心写少了一个等于号,
那么就会在条件不成立的时候也输出语句1。
// if(num=3){
// console.log("语句1");
// }
// 建议新手的写法--将变量写在前面
if(3==num){
console.log("语句1");
}
console.log("语句2");
-
if,else if 和 else 三者 后面的{ }都是可以省略的,但是省略之后只有紧跟其后的语句会受到控制,其他的语句不会受到控制。
-
在JavaScript中分号( ;)也是一条语句(称为空语句)。
// 条件不成立,不会执行{}中的代码。不会输出语句1。
if(false){
console.log("语句1");
}
// 如果在if()的后面加上分号( ;),
//那么就相当于将if后面的{}省略,添加上的是空语句( ;)
// 但是省略{}最后只有紧跟其后的语句会受到控制。
// if(false)控制的是后面的空语句( ;)。所以会输出语句1。
if(false);
{
console.log("语句1");
}
-
if 选择结构可以嵌套使用(看需求)
-
当 if 选择结构省略 { } 时,else if 或 else 会自动和距离最近没有被使用的 if 匹配