赋值运算符
赋值运算符:对变量进行赋值的运算符
已经学过的赋值运算符:= 将等号右边的值赋予给左边, 要求左边必须是一个容器
其他赋值运算符: += -= *= /= %=
使用这些运算符可以在对变量赋值时进行快速操作
<script>
let num = 4
num += 5 /*num = num + 5*/
console.log(num)
let div = 6
div++
console.log(div)
</script>
1. = 赋值运算符执行过程?
将等号右边的值赋予给左边, 要求左边必须是一个容器
2. += 出现是为了简化代码, 比如让 let num = 10 ,num 加5 怎么写呢?
num += 5
一元运算符
自增:
符号:++
作用:让变量的值 +1
自减:
符号:--
作用:让变量的值 -1
自增运算符的用法

比较运算符
比较运算符:
> : 左边是否大于右边
<: 左边是否小于右边
>=: 左边是否大于或等于右边
<=: 左边是否小于或等于右边
==: 左右两边值是否相等
===: 左右两边是否类型和值都相等
!==: 左右两边是否不全等
比较结果为boolean类型,即只会得到 true 或 false
<script>
console.log(5 === '5')
console.log(5 == '5')
console.log(5 != '5')
console.log(5 !== '5')
let i = 1
console.log(i++ + ++i + i)
// 结果为7
</script>
NaN不等于任何值,包括它本身
涉及到"NaN“ 都是false
尽量不要比较小数,因为小数有精度问题
不同类型之间比较会发生隐式转换
最终把数据隐式转换转成number类型再比较
所以开发中,如果进行准确的比较我们更喜欢 === 或者 !==
1. = 和 == 和 === 怎么区别?
= 是赋值
== 是判断 只要求值相等,不要求数据类型一样即可返回true
=== 是全等 要求值和数据类型都一样返回的才是true
开发中,请使用 ===
2. 比较运算符返回的结果是什么?
结果只有2个, true 或者 false
逻辑运算符
<script>
let num = +prompt('请输入一个数')
alert(num % 4 === 0 && num % 100 !== 0)
</script>
一个数能被4整除,不能被100整除
运算符优先级
表达式和语句
表达式:
表达式是可以被求值的代码,JavaScript 引擎会将其计算出一个结果。
语句:
语句是一段可以执行的代码。
比如: prompt() 可以弹出一个输入框,还有 if语句 for 循环语句等等
表达式:因为表达式可被求值,所以它可以写在赋值语句的右侧。
表达式
num = 3 + 4
语句:而语句不一定有值,所以比如 alert() for和break 等语句就不能被用于赋值。
语句
alert() 弹出对话框 console.log() 控制台打印输出
分支语句
1. if语句
<script>
let num = +prompt('请输入你的成绩')
if (num > 700 ) {
alert('恭喜考入黑马')
} else {
document.write(`
<h1>考的什么鬼<h1>
<img class="f3" src="https://img2.baidu.com/it/u=767121601,166077160&fm=253&fmt=auto&app=120&f=JPEG?w=500&h=708" width="300px" />`)
}
</script>
if语句有三种使用:单分支、双分支、多分支

<script>
let name = prompt('请输入姓名')
let num = prompt('请输入密码')
if (name === 'pink' && num === '123456') {
alert('登录成功')
} else {
alert('登录失败')
}
</script>
<script>
let year = prompt('请输入年份')
if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
alert(`${year}是闰年`)
} else {
alert(`${year}是平年`)
}
</script>
<script>
let num = prompt('请输入分数')
if (num >= 90) {
alert('优秀')
} else if (num >= 80) {
alert('良好')
} else if (num >= 70) {
alert('中等')
} else if (num >= 60) {
alert('及格')
} else {
alert('差评')
}
</script>
三元运算符
<script>
let now = 4 > 1 ? '笨蛋' : '傻瓜'
document.write(now)
</script>
<script>
let num1 = prompt('请输入第一个数字')
let num2 = prompt('请输入第二个数字')
let num = num1 > num2 ? num1 : num2
alert(num)
</script>
<script>
let one = prompt('请输入一个数字')
let two = one < 10 ? '0' + one : one
alert(two)
</script>
switch语句
<script>
let week = 5
switch (week) {
case 1:
alert('睡觉')
break
case 2:
alert('睡觉')
break
case 3:
alert('睡觉')
break
case 4:
alert('睡觉')
break
case 5:
alert('睡觉')
break
default:
alert('杀人')
}
</script>
循环结构
while 循环
循环:重复执行一些操作, while : 在…. 期间, 所以 while循环 就是在满足条件期间,重复执行某些代码。
比如我们运行相同的代码输出5次(输出5句 “我学的很棒”)

while循环的作用是什么?
在满足条件期间,重复执行某些代码
while循环三要素是什么?
变量起始值
终止条件(没有终止条件,循环会一直执行,造成死循环 )
变量变化量(用自增或者自减)
<script>
// let flag = true
// let i = 1
// while(flag) {
// i++
// alert('月薪过万')
// if (i > 3) {
// flag = false
// }
// }
let i = 1
while(i <= 100) {
document.write(`<h1>${i}</h1>`)
i++
}
</script>
100以内所有数字
<script>
let i = 1
let sum = 0
while(i <= 100) {
sum = sum + i
i++
}
document.write(sum) 所有数字和100以内
let i = 1
let sum = 0
while(i <= 100) {
if (i % 2 === 0) {
sum = sum + i
}
i++
}
document.write(sum) 100以内偶数和
let i = 2
let sum = 0
while(i <= 100) {
sum = sum + i
i = i + 2
}
document.write(sum) 100以内偶数和
</script>
<script>
let flag = true
let sum = 0
while(flag) {
let caozuo = +prompt(`
请选择您的操作:
1.存款
2.取款
3.查看余额
4.退出
`)
if (caozuo === 1) {
let now = +prompt('存款')
sum = sum + now
} else if (caozuo === 2) {
let out = +prompt('取款')
sum >= out ? sum = sum - out : alert('您的余额不足')
} else if (caozuo === 3) {
alert(`您的卡里还剩下${sum}`)
} else if (caozuo === 4) {
alert('欢迎下次光临')
flag = false
} else {
alert('请输入合法操作')
}
}
</script>
取款机案例