自增自减运算符
++ --
作用:将变量自增一或者自减一
语法: 变量 ++ ; ++ 变量
区别:
如果 符号 在 变量/数据 前, 先运算自增或者自减, 然后参与周围程序运算
如果 符号 在 变量/数据 后, 先参加周围程序运算, 然后自增或者自减
var num = 1
++ 在前, 先运算
console.log(++num) // 2
++ 在后, 后运算
console.log(num++) // 1
console.log(num) // 2
逻辑运算符
&& 逻辑与 逻辑且
语法: 变量一/数据一 && 变量二/数据二
运行规则: 会判断符号左边的变量的值, 转换为布尔值后
如果符号左边布尔值为 true, 那么运行符号右边的代码或者返回符号右边的代码
如果符号左边布尔值为 false, 那么直接运行符号左边的代码或者返回符号左边的代码
|| 逻辑或
语法: 变量一/数据一 || 变量二/数据二
运行规则: 会判断符号左边的变量的值, 转换为布尔值后
如果符号左边布尔值为 true, 那么运行符号右边的代码或者返回符号左边的代码
和 逻辑或 将来在 分支语句中将常会使用 如果符号左边布尔值为 false, 那么直接运行符号左边的代码或者返回符号右边的代码
逻辑与 和 逻辑或 将来在 分支语句中经常会使用 作为 判断条件
逻辑与: 满足条件1 并且 满足条件2
逻辑或: 满足条件1 或者 满足条件2
! 逻辑非
得到数据的取反后的布尔值
!undefined !true
逻辑与 &&
console.log(变量1/数据1 && 变量2/数据2)
console.log(true && false)
console.log(1 && 0)
console.log(0 && 100)
console.log('手动分割线=================')
console.log(true && false)
按照逻辑与的规则, 符号左边的布尔值为 true 那么运行符号右边的代码, 或者返回符号右边的代码
所以相当于写了: console.log(false)
console.log(0 && 100)
按照逻辑与的规则, 符号左边的布尔值为 false 那么运行符号左边的代码, 或者返回符号左边的代码
所以相当于写了: console.log(0)
true && console.log('条件成立')
false && console.log('你猜我会不会打印?')
逻辑或 ||
console.log(true || false)
console.log(1 || 0)
console.log(0 || 100)
console.log(1 || 0)
按照逻辑或的规则, 符号左边的布尔值为 true 那么运行符号左边的代码, 或者返回符号左边的代码
所以相当于写了: console.log(1)
console.log(0 || 100)
按照逻辑或的规则, 符号左边的布尔值为 false, 那么运行符号右边的代码, 或者返回符号右边的代码
所以相当于写了: console.log(100)
true || console.log('左边为 true 右边就不会执行了')
false || console.log('左边为 false 右边才会执行')
分支语句
JS 在执行的时候, 是按照 从上到下的顺序执行的
所以我们书写的所有代码都会执行, 区别就是执行顺序的问题
但是上述的执行方案会有一个小问题,比如我想根据某一个条件决定是否执行一段代码
一个代码案例:    在访问一个页面的时候,如果页面地址输入的没问题,并且网络也能正常访问页面
     那么此时一定可以正常访问页面
 如果上述的条件有一个不满,比如说地址输入错误,或者说网线被扒了
     那么此时页面就无法正常的访问了
此时如果是前端JS处理,那么应该是这解决的 如果条件1和条件2都成立,那么展示一个正常的页面 否则,展示一个错误的页面(404页面)
所以分支语句的一个核心就是给了我们 基于某一个条件决定执行某一段代码的能力
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(语法3的一个升级补充):
if(条件1){
如果条件1成立,那么我会执行,同事后续的所有 else if 或者 else 都不会执行了
}else if (条件2){
如果条件1不成立,那么我会执行,那么我会执行,同时后续的所有的所有 else if 或者 else 都不会执行了
} else if(条件3){
如果条件1和条件2都不成立, 但是条件3成立了, 那么我会执行 , 同时后续的所有 else if 或者 else 都不会执行了
}else {
如果上述的所有条件都不成立, 那么我会执行, 否则就不执行
}
课堂练习
1.用户输入一个数字,判断这个数字是不是偶数
是:打印偶数
不是:打印奇数
var a = prompt() - 0
if(a % 2 === 0 ){
console.log(a,'是个偶数')
}else{
console.log(a,'是个奇数')
}
2.用户输入两个数字,判断两个数字的较大值,并打印出来
var a = prompt() - 0
var b = prompt() - 0
if(a > b){
console.log(a)
}else{
console.log(a)
}
3.用户输入一个年份,判断这个年份是不是闰年
条件:
四年一润,百年不润 四百年补一闰
var year = prompt() - 0
if(year % 4 === 0 && year % 100 === 0 || year % 400 === 0){
console.log(year,'是个闰年')
}else{
console.log(year,'是个平年')
}