运算符补充
- 自增自减运算符 ++ --
- 作用:将自变量自增1或者自减1
- 语法:变量++ ++变量 变量-- --变量
- 区别:如果符号在变量/数据 前,先运算自增或者自减,然后参与周围程序运算 。 如果符号在变量/数据后,先参与走位程序运算,然后自增或者自减
var num = 1
console.log(++num)
var num = 1
console.log(num++)
- 逻辑运算符
- && 逻辑与 逻辑且
- 语法:变量1/数据1 && 变量2/数据2
- 运行的规则:会判断符号左边的变量的值,转换为布尔值 ;
- 如果符号左边布尔值为true,那么运行符号右边的代码或者返回符号右边的代码
- 如果符号左边布尔值为false,那么直接运行符号左边的代码或者返回符号左边的代码
- 逻辑与 和 逻辑或 将来在 分支语句中经常会使用 作为 判断条件
- 逻辑与: 满足条件1 并且 满足条件2
- 逻辑或: 满足条件1 或者 满足条件2
console.log(变量1/数据1 && 变量2/数据2)
console.log(true && false)
console.log(1 && 0)
console.log(0 && 100)
- || 逻辑语法:变量1/数据1 || 变量2/数据2
- 运行规则:会判断符号左边的变量的值,转换为布尔值
- 如果符号左边布尔值为true,那么运行符号左边的代码或者返回符号左边的代码
- 如果符号左边的值为false,那么直接运行符号右边的代码或者返回符号右边的代码
console.log(true || false)
console.log(1 || 0)
console.log(0 || 100)
true || console.log('左边为 true 右边就不会执行了')
false || console.log('左边为 false 右边才会执行')
- ! 逻辑非得到数据的取反后的布尔值
!undefined !true
分支语句
- 分支语句
- JS 在执行的时候, 是按照 从上往下的顺序执行的
- 所以我们书写的所有代码都会执行, 区别就是执行顺序的问题
- 分支语句的一个核心就是给了我们 基于某一个条件决定执行某一段代码的能力
if语句
- 语法1
if(条件) { 书写如果条件成立,需要执行的代码}
- 条件为真,就会执行大括号内的代码,否则不执行
- 条件可以直接书写布尔值,也可以书写一个表达式,或者一个数字
- 只要书写的不是一个布尔值,那么会隐式转换为一个布尔值
- 语法2
if (条件) {
书写如果条件成立, 需要执行的代码
} else { 当上边的条件不成立的时候, 我会执行, 如果上边的条件成立了, 我就不执行了 }
- 语法3
if (条件1) {
如果条件1成立, 那么我会执行, 同时后续的所有 else if 或者 else 都不会执行了
} else if (条件2) {
如果条件1不成立, 但是条件2成立了, 那么我会执行 , 同时后续的所有 else if 或者 else 都不会执行了
} else if (条件3) {
如果条件1和条件2都不成立, 但是条件3成立了, 那么我会执行 , 同时后续的所有 else if 或者 else 都不会执行了 } .....
- 语法4
if (条件1) {
如果条件1成立, 那么我会执行, 同时后续的所有 else if 或者 else 都不会执行了
} else if (条件2) {
如果条件1不成立, 但是条件2成立了, 那么我会执行 , 同时后续的所有 else if 或者 else 都不会执行了
} else if (条件3) {
如果条件1和条件2都不成立, 但是条件3成立了, 那么我会执行 , 同时后续的所有 else if 或者 else 都不会执行了 } else { 如果上述的所有条件都不成立, 那么我会执行, 否则就不执行 }
switch
- switch 语句, 也是 分支语句的一种 , 主要用于某一个变量的具体值, 做判断 (全等 ===)
switch (变量) {
case 100:
当变量的值 === 100 的时候会执行
break;
case 101:
当变量的值 === 101 的时候会执行
break;
default:
当上述条件都不满足的时候, 执行
switch的穿透
- 在书写 case 的时候, 没有 书写 break
- 那么如果这个 case 符合条件那么就会执行它内部的代码
- 代码执行完毕后, 没有发现 break, 所以会继续向下执行
- 不管 下一个 case 条件是否满足 直到遇见下一个 break 或者 当前 switch 代码全都执行完毕
三元表达式 (三元运算符/三目运算符/问号冒号表达式)
- 也是分支语句的一种, 对 if 语句的一个优化
- 语法: 条件 ? 条件为真的时候执行的代码(只有一行) : 条件为假的时候执行的代码
假设一个变量 box 他的值可能是 1 也可能是 2
我们要根据 这个变量的值 去创建一个新的变量, 内部的值存储为 成功或者失败
我们自己约定 如果值 === 1 那么为成功, 其他情况 为失败
var msg = 条件 ? 条件为真的时候执行的代码(只有一行) : 条件为假的时候执行的代码