逻辑分支
1、概念
1、逻辑:思维的规律。
2、计算机逻辑:用计算机来模拟人类的思维,来解决一些实际的问题。
3、分支:通过分支语句,可以控制程序的执行流程。
4、程序的三大结构:
- 顺序结构:按照解决问题的顺序,写出相应的流程。
- 选择结构:用于判断给定的条件,来控制程序的流程。
- 循环结构:在一定条件下,反复执行某段程序的流程。
2、逻辑运算
2.1、逻辑运算符:
- 与:&&:两个都为真才为真 :b = 式1 && 式2
- 或:||:只要有一个条件为真,就为真 :b = 式1 || 式2
- 非(取反):条件不成立时,结果为真 :b = ! 式1 、 b != 式1(一般用这个)
注意; 两次取反可以相当于类型转换
console.log( !!“abc” )
console.log( Boolean(“abc”) )
判断 式1 时,无论是什么类型的数据,都会转换成布尔值,然后再做判断
2.2、短路运算(逻辑运算):指如果前一个条件已经能够得出结果,那么后续条件将不再执行
- 并且:
- b = 式1 && 式2
- 过程:先判断 式1,若为真,直接把 式2 的值赋给变量b;若为假,直接把 式1 的值赋给变量b
- 或者:
- b = 式1 || 式2
- 过程:先判断 式1,若为真,直接把 式1 的值赋给变量b;若为假,直接把 式2 的值赋给变量b
- 注意:判断 式1 时,无论是什么类型的数据,都会执行Boolean(式1),然后做判断,赋值时,把原始值赋给变量
2.3、类型转换:
- 如果两个操作值都是数值,则直接比较大小。
- 如果两个操作值都是字符串,则字符串进行其Unicode编码进行比较。“3”<“12”
- 如果一个操作值是数值,则另一个值转换为数值进行比较。3<“12”
- 如果一个操作值是字符串,另一个操作值是布尔值,则把两个操作值都转为数值比较。true==“a”
- NaN和任何值都不相等,包括自己,同时它与任何类型比较都会返回false。
3、选择结构
3.1、if语句
- 语法:
if ( 条件 ) {
// 代码块: 如果条件成立,则执行代码块
}
if ( 条件 ) {
// 代码块A: 如果条件成立,则执行代码块A
} else {
// 代码块B: 如果条件不成立,则执行代码块B
}
if ( 条件1 ) {
// 当条件1成立时,执行此处的代码块。
} else if ( 条件2 ) {
// 当条件2成立时,执行此处的代码块。
} else if ( 条件3 ) {
// 当条件3成立时,执行此处的代码块。
} else {
// 以上所有条件都不成立时,执行此处的代码块。
}
- 需要注意的地方:
- 可以单独只写1个if,也可以写if else,也可以写if else if,也可以写if else if else
- 可以嵌套着写
- 条件成立后,执行完该代码块后,只跳出当前的if语句
- 条件可以是任意表达式,看该表达式最终的结果为真还是为假, 即:if语句的条件,仅接受布尔值类型的数据,其他类型的数据会自动转换为布尔型。
3.2、switch语句和if语句效果是一样的,都是用来控制程序的执行流程。
- 语法:
switch ( 表达式 ) {
case "值1" :
// 语句块A
break;
case "值2" :
// 语句块B
break;
default:
// 语句块C
}
4、循环结构
4.1、概念:
- 循环,也被称为迭代或遍历,即在特定条件下,反复执行某段程序。
- 循环语句,是由循环体,和循环终止条件两部分组成。
4.2、三种循环语句:
1、while:如果循环条件成立,则执行代码块。要在代码块中更新循环条件,否则就造成死循环了
while ( 循环条件 ) {
// 反复执行的代码块
}
2、do-while:先执行一次代码块,然后判断循环条件是否成立,如果成立,继续执行代码块,否则跳出循环
do {
// 代码块
} while ( 循环条件 )
3、for:先给初始值,然后判断循环条件是否成立,如果条件成立,则执行代码块,代码块执行完,执行更新,更新执行完,执行判断循环条件是否成立,如果条件不成立,则跳出 for 循环
for ( 初始值; 循环条件; 更新 ) {
// 代码块。
}
4.3、退出循环:
- continue:退出循环的当前迭代,执行下一个 迭代
- break:退出整个循环