7.5.1 三种 = 运算符
var num1 = 10; var num2 = 100; var res1 = num1 > num2; // f var res2 = num1 == 11; // f var res3 = num1 != num2; // t
7.6 逻辑运算符
逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值。后面开发中经常用于多个条件的判断
7.6.1 逻辑与 &&
两边都是 true才返回 true,否则返回 false
一假都假 (只要其中一个为假就为假)
console.log(1>2 && 2>1) console.log(1==1 && 2<1) console.log(1==1 && 2>1)
7.6.2 逻辑或 ||
两边都为 false 才返回 false,否则都为true
一真都真(只要其中一个为真就为真)
console.log(1>2 || 2>1) console.log(1==1 || 2<1) console.log(1!=1 || 2<1)
7.6.3 逻辑非 !
逻辑非(!)也叫作取反符,用来取一个布尔值相反的值,如 true 的相反值是 false
console.log(!true) console.log(!false) console.log( !(4>'2') )
7.6.4 短路运算(逻辑中断)
短路运算的原理:当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值;
- 表达式1 && 表达式2当表达式1为真时,会继续判断表达式的结果,因为&&要两个表达式都为真才为真,所以表达式1为真会继续判断第二个表达式,此时由于运行到了表达式2,所以该与运算的结果为表达式2的结果。当表达式1为假时,不会判断表达式2,因为与运算一假都假,表达式1为假已经可以判断整个与运算,所以不会继续判断第二个表达式,最后与运算的结为表达式1的结果。
- 如果第一个表达式的值为真,则返回表达式2
- 如果第一个表达式的值为假,则返回表达式1
- 表达式1 || 表达式2当表达式1为假时,会继续判断表达式的结果,因为 || 要两个表达式都为假才为假,所以表达式1为假会继续判断第二个表达式,此时由于运行到了表达式2,所以该或运算的结果为表达式2的结果。当表达式1为真时,不会判断表达式2,因为或运算一真都真,表达式1为真已经可以判断整个或运算,所以不会继续判断第二个表达式,最后或运算的结为表达式1的结果。
- 如果第一个表达式的值为真,则返回表达式1
- 如果第一个表达式的值为假,则返回表达式2
// 1 为真(非0为真),继续向后判断 // 结果输出 12 console.log( 1 && 12 ); // 0 为假,不继续判断 // 输出 0 console.log( 0 && 213 ); console.log( 0 || 12 ); // 12 console.log( 0 || 0 ); // 0 console.log( 1 || 0 ); // 1
7.7 赋值运算符
用来把数据赋值给变量的运算符
var a = 100 a += 3 // 等价于 a = a+3 console.log( a ) a -= 3 // 等价于 a = a-3 console.log( a ) a *= 10 // 等价于 a = a*10 console.log( a ) a /= 10 // 等价于 a = a/10 console.log( a ) a %= 3 // 等价于 a = a%3 console.log( a )
7.8 运算符优先级
- 一元运算符里面的逻辑非优先级很高
- 逻辑与比逻辑或优先级高
8. 流程控制
8.1 流程控制
流程控制就是来控制我们的代码按照什么结构顺序来执行
流程控制主要有三种结构,分别是顺序结构、分支结构和循环结构,这三种结构代表三种代码执行的顺序。
8.2 顺序流程控制
程序会按照代码的先后顺序,依次执行,代码从上到下执行
8.3 分支流程控制
分支结构:
由上到下执行代码的过程中,根据不同的条件,执行不同的路径代码(执行代码多选一的过程),从而得到不同的结果
JS 语言提供了两种分支结构语句
- if 语句
- switch 语句
8.3.1 if 语句
语法:
// 条件成立执行代码,否则不执行 if (条件表达式) { // 条件成立执行的代码语句 }
var age = prompt('请输入你的年龄') if ( parseInt(age)>=18 ) { alert('你成年了~') }