运算符
赋值运算符
赋值运算符用于简化
变量自身的算数运算
=
:普通赋值
+=
:算数赋值
-=
*=
/=
%=
自增运算符
自增运算符常用于计数
++number
:前置自增
number++
:后置自增
--number
:前置自减
number--
:后置自减
前置自增和后置自增的区别:前置自增先自增再参与运算
,后置自增先参与运算再自增
比较运算符
>
<
<=
>=
!==
:左右两边是否不全等
==
:左右两边值是否相等
===
:左右两边值和类型是否都相等
注意事项:
- 字符串比较,比较的是 ASCII 码,从左至右依次比较
- NaN 不等于任何值,包括它本身
- 尽量不要比较小数,有精度问题
逻辑运算符
运算符优先级
- 小括号
- 一元运算符
- 算数运算符:先
*/
后+-
- 关系运算符
- 相等运算符
- 逻辑运算符:先
&&
后||
- 赋值运算符
- 逗号运算符
语句
表达式和语句
表达式是可以被求值的代码
语句是一段可以执行的代码
,不一定有值
if 语句
if 单分支语句
1
2
3
4
|
let age = Number(prompt('请输入您的年龄‘))
if (age > 18) {
console.log('成年人')
}
|
- 括号内为 true 时,执行大括号内代码
- 小括号内不是 boolean 类型数据时,会发生
隐式转换
- 大括号只有一条语句时,可以
省略大括号
,但是不提倡
if 双分支语句
1
2
3
4
5
6
|
let age = Number(prompt('请输入您的年龄'))
if (age > 18) {
console.log('成年人')
} else {
console.log('少年人')
}
|
if 三分支语句
1
2
3
4
5
6
7
8
|
let score = Number(prompt('请输入您的成绩');
if (score > 90) {
console.log('优秀');
} else if (score > 80) {
console.log('良好');
} else {
console.log('一般');
}
|
三元运算符
比 if 双分支更简单
的写法
?
与:
结合
条件 ? 满足条件执行的代码 : 不满足条件执行的代码
1
2
3
4
|
let a = 1
let b = 2
// 三目运算符
a > b ? a : b
|
switch 语句
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
let number = +prompt('请输入一个1-7数字')
switch (number) {
case 1:
console.log('星期一')
break
case 2:
console.log('星期二')
break
case 3:
console.log('星期三')
break
case 4:
console.log('星期四')
break
case 5:
console.log('星期五')
break
case 6:
console.log('星期六')
break
case 7:
console.log('星期七')
break
default:
console.log('输入有误')
}
|
- 表达式的值必须与 case 语句后的值
全等
- case 语句后应该加上 break 语句,否则会穿透
- 应该加上 default 语句,没有匹配的值时,执行该语句
断点调试
while 循环语句
1
2
3
4
5
|
let n = 0
while (n < 5) {
console.log(n)
n++
}
|
退出循环
- break 退出整个循环
- continue 跳过本次循环,继续下一个循环
for 循环语句
相比于 while 循环,for 循环把起始量,循环条件,循环量自增放在一起,更加清晰。
1
2
3
|
for (var i = 0; i < 10; i++) {
console.log(i);
}
|
遍历数组
1
2
3
4
|
let arr = [1, 2, 3, 4, 5]
for (let i = 0; i < arr.length; i++) {
console.log(arr[i])
}
|
退出 for 循环
循环嵌套
1
2
3
4
5
6
7
8
|
// 外层循环,控制行数
for (let i = 0; i < 10; i++) {
// 内层循环,控制列数
for (let j = 0; j <= i; j++) {
document.write(`${i} * ${j} = ${i * j}`)
}
document.write(`</br>`)
}
|