1 运算符
1.1 赋值运算符
将等号右边的值赋给左边的变量,要求左边必须是一个容器
加法赋值运算
赋值运算符
+=
- 其他赋值运算符
-= *= /= %=
let num = 1
num = num + 1
------
let num = 1
num += 1
// 表示自动赋值加 1
num += 5
// 表示自动赋值加 5
1.2 一元运算符
自增运算符
- 前置自增
++变量 - 后置自增
变量++
单独运算时 都是给变量加1
// 前++ 在参与运算时分两步 第一步先给自己加1 第二步再来参与运算
let i = 1
console.log(++i + 1)
// 结果是2+1=3
------
// 后++ 在参与运算时分两步 第一步先参与运算 第二步再给自己加1
let i = 1
console.log(i++ + 1)
// 结果是1+1=2
1.3 比较运算符
比较两个数的大小
1. 比较运算符
>:左边是否大于右边
<:左边是否小于右边
>=:左边是否大于或等于右边
<=:左边是否小于或等于右边
==:只会比较左右两边值是否相等
!=: 左右两边不等于
===:全等于 既要判断左右两边的值是否相等,也要比较属性类型是否相同
!==:左右两边是否不全等,不等于时true,等于是flose
比较结果为boolean类型,即只会得到 true 或 false
2. 对比
= 赋值,将等号右边的值赋给等号左边的变量
== 判断,只判断值是否相同
=== 全等,值和类型都相等
!!! 开发中判断是否相等,强烈推荐使用 ===
1.4 逻辑运算符
与 或 非
// 语句运算符
&& 与 并且 一假则假
|| 或 或者 一真则真
! 非 取反 真变假,假变真
1.5 运算符的优先级
判断运算执行的顺序
| 优先级 | 运算符 | 顺序 |
|---|---|---|
| 1 | 小括号 | () |
| 2 | 一元运算符 | ++ -- ! |
| 3 | 算数运算符 | 先 * / !后 + - |
| 4 | 关系运算符 | > >= < <= |
| 5 | 相等运算符 | == != === !== |
| 6 | 逻辑运算符 | 先&& 后|| |
| 7 | 赋值运算符 | = |
| 8 | 逗号运算符 | , |
2 语句
2.1 表达式和语句
- 表达式 表达式是可以被求值的代码,JavaScript 引擎会将其计算出一个结果。
- 语句 是一段可以执行的代码,不一定有值。 比如:prompt() 可以弹出一个输框,还有 if语句 for 循环语句等。
2.2 分支语句
if 语句
- 分支:单分支、双分支、多分支
// 单分支 语法
if (条件) {
满足条件要执行的代码
}
<!-- 如果不是布尔值会进行隐式转换 -->
// 案例 判断成绩,反馈结果
// 第一步 准备一个对话框
const num = prompt('请输入您的高考成绩')
// 第二步 使用if语句进行判断
if (num > 700) {
// 第三步 弹出判断结果
alert('恭喜您考上程序员大学')
}
// 双分支 语法
if (条件) {
满足条件要执行的代码
} else {
不满足条件要执行的代码
}
// 案例1 登录提示
const uname = prompt('请输入用户名:')
const pwd = prompt('请输入密码:')
if (uname === 'pink' && pwd === '123456') {
alert('登录成功')
} else {
alert('登录失败')
}
// 案例2 闰年平年?
const num = prompt('请输入年份')
if (num % 4 === 0 && num % 100 !== 0 || num % 400 === 0) {
alert('是闰年')
} else {
alert('是平年')
}
// 多分支 语法
if (条件1) {
代码1
} else if (条件2) {
代码2
} else if (条件3) {
代码3
} else {
代码n
}
// 案例 判断成绩 优秀 良好 及格 渣渣
const num = 20
if (num > 90) {
document.write('优秀')
} else if (num >= 70) {
document.write('良好')
} else if (num >= 60) {
document.write('及格')
} else {
document.write('渣渣')
}
三元运算符(三元表达式)
- 比 if 双分支更简单的写法,可以使用三元素表达式
语法:
条件 ? 满足条件执行的代码 : 不满足条件执行的代码
// 案例1 利用三元运算法判断两个数字的大小
const num1 = prompt('请输入第一个数字')
const num2 = prompt('请输入第二个数字')
const res = num1 > num2 ? num1 : num2
console.log(res);
// 注意:满足条件执行前面的代码,不满足条件执行后面的代码
// 案例2 数字补0 数字小于10时在前面补0
const num = prompt('请输入一个数字')
const res = num < 10 ? '0' + num : num
console.log(res);
// 注意:此处用了 字符串拼接
switch case语句
- switch case 语句一般用于全等值的判断,不适合用于区间判断
- 必须与break(打断)关键字一起使用,否则会造成case穿透
// switch 语法
switch (数据) {
case 值1:
代码1
break
case 值2:
代码2
break
default:
代码n
break
}
// 案例 简单计算器
// 目标: 使用switch case 实现简单计算器功能
// 第一步 准备三个输入框
// 第二步 根据 + - * / 进行判断
const num1 = +prompt('请输入第一个数字')
const num2 = +prompt('请输入第二个数字')
const fuhao = prompt('请从+ - * / 中选择您要执行的运算')
switch (fuhao) {
case '+':
document.write(`您执行的是加法运算,结果是: ${num1 + num2}`)
break
case '-':
document.write(`您执行的是减法运算,结果是: ${num1 - num2}`)
break
case '*':
document.write(`您执行的是乘法运算,结果是: ${num1 * num2}`)
break
case '/':
document.write(`您执行的是除法运算,结果是: ${num1 / num2}`)
break
}
2.3 循环语句
while 循环语句
能重复执行某段代码
// 语法
while (循环条件) {
要重复执行的代码(循环体)
}
// 无限循环 (一直循环,不会结束)
while (true) {
需要循环的代码
}
// !!while 循环三要素
1.变量起始值
2.终止条件(没有终止条件,循环会一直执行,造成死循环)
3.变量变化量(用自增或自减)
// 案例1 i小于等于3时,窗口弹出‘我真帅’,并且循环执行,直到不满足i小于等于3的条件时 结束程序
let i = 1 // 变量起始值
while (i <= 3) { //(终止条件)
alert('我真帅') // 循环体
i++ // 变量变化量
}
// 案例2 页面打印10次‘月薪过万’
let i = 1
while (i <= 10) {
document.write('月薪过万<br>')
i++
}
2.4 循环中断
- break 打断 跳出所有的循环
- continue 结束本次循环,继续下一次循环
3 综合案例
银行存取款机
案例效果展示
// 不输入4,就一直循环; 输入4 打断循环,退出程序
let money = 100 // 自定义初始money
while (true) {
const num = +prompt(`
请输入您要执行的操作:
1.存款
2.取款
3.查看余额
4.退出
`)
if (num === 4) {
alert('欢迎下次光临!')
break
} else if (num === 1) {
const num1 = +prompt('请输入您存入的金额')
money += num1
alert(`您已存入${num1}`)
} else if (num === 2) {
const num2 = +prompt('请输入您取款的金额')
money -= num2
alert(`您已取出${num2},请注意查收`)
} else if (num === 3) {
alert(`您的余额为${money}`)
}
}
简单计算器
实现简单计算器运算功能
// 目标: 使用switch case 实现简单计算器功能
// 第一步 准备三个输入框
// 第二步 根据+ - * / 进行运算判断
// 第三步 页面显示计算结果
const num1 = +prompt('请输入第一个数字')
const num2 = +prompt('请输入第二个数字')
const fuhao = prompt('请从+ - * / 中选择您要执行的运算')
switch (fuhao) {
case '+':
document.write(`您执行的是加法运算,结果是: ${num1 + num2}`)
break
case '-':
document.write(`您执行的是减法运算,结果是: ${num1 - num2}`)
break
case '*':
document.write(`您执行的是乘法运算,结果是: ${num1 * num2}`)
break
case '/':
document.write(`您执行的是除法运算,结果是: ${num1 / num2}`)
break
}