运算符
一、赋值运算符
赋值运算符:对变量进行赋值的运算符
- 赋值运算符有:
+=
-=
*=
/=
%=
num += 3 相当于 num = num + 3
二、一元运算符
只用一个数字就可以做计算的运算符
- 自增:
符号:++
作用:让变量的值 +1 - 自减:
符号:–
作用:让变量的值 -1 - 使用场景:经常用于计数来使用
自增运算符的用法
- 前置自增
let num = 1
++num //让num的值+1变成2
每次执行一次,相当于num += 1 相当于num = num + 1
- 先自加再使用(记忆口诀:++在前 先加)
let i = 1
console.log(++i + 2) //结果是4
//i是2,i先+1变成2以后再+2
- 后置自增
let num = 1
num++ //让num的值+1变成2
每次执行一次,相当于num += 1 相当于num = num + 1
- 先使用再自加(记忆口诀:++在后 后加)
let i = 1
console.log( + 2) //结果是3
//i是2,i先+1还没变再+2,然后i才变成2
注意:前置自增和后置自增在单独使用时没有区别
三、比较运算符
比较两个数据大小、是否相等
-
比较运算符有
>: 左边是否大于右边
<: 左边是否小于右边
>=: 左边是否大于或等于右边
<=: 左边是否小于或等于右边
==: 左右两边值是否相等
===: 左右两边是否类型和值都相等(开发中判断是否相等,强烈推荐使用 ===)
!==: 左右两边是否不全等
比较结果为boolean类型,即只会得到 true 或 false -
字符串比较,是比较的字符对应的ASCII码
从左往右依次比较
如果第一位一样再比较第二位,以此类推 -
NaN不等于任何值,包括它本身
涉及到"NaN“ 都是false -
尽量不要比较小数,因为小数有精度问题
-
不同类型之间比较会发生隐式转换
最终把数据隐式转换转成number类型再比较
所以开发中,如果进行准确的比较我们更喜欢 === 或者 !==
四、逻辑运算符
使用场景:用来解决多重条件判断
- 逻辑运算符:
五、运算符优先级
- 一元运算符里面的逻辑非优先级很高
- 逻辑与比逻辑或优先级高
语句
一、表达式和语句
- 表达式:
表达式是可以被求值的代码,JavaScript 引擎会将其计算出一个结果。 - 语句:
语句是一段可以执行的代码。 - 区别
- 表达式:因为表达式可被求值,所以它可以写在赋值语句的右侧。
表达式 num = 3 + 4 - 语句:而语句不一定有值,所以比如 alert() for和break 等语句就不能被用于赋值。
语句 alert() 弹出对话框 console.log() 控制台打印输
- 表达式:因为表达式可被求值,所以它可以写在赋值语句的右侧。
二、分支语句
1、if语句
单分支语句
if (条件) {
满足条件要执行的语句
}
- 括号内的条件为true时,进入大括号里执行代码
- 小括号内的结果若不是布尔类型时,会发生隐式转换转为布尔类型
- 除0以外的数字的返回值都是true,除空字符串’'以外的字符串的返回值都是true
- 如果大括号只有一个语句,大括号可以省略,但是不提倡这么做~
双分支语句
if (条件) {
满足条件要执行的语句
} else{
不满足条件要执行的语句
}
多分支语句
使用场景: 适合于有多个结果的时候
if (条件) {
语句1
} else if (条件2){
语句2
} else if (条件3){
语句3
} else {
语句n
}
- 先判断条件1,若满足条件1就执行代码1,其他不执行
- 若不满足则向下判断条件2,满足条件2执行代码2,其他不执行
- 若依然不满足继续往下判断,依次类推
- 若以上条件都不满足,执行else里的代码n
- 注:可以写N个条件
2、三元语句
语法:条件 ?满足条件执行的代码 :不满足条件执行的代码
一般用来取值
3、switch语句
- 找到跟小括号里数据全等的case值,并执行里面对应的代码
- 若没有全等 === 的则执行default里的代码
语法:
switch (数据) {
case 值1:
代码1
break
case 值2:
代码2
break
default:
代码n
break
}
- switch case语句一般用于等值判断,不适合于区间判断
- switch case一般需要配合break关键字使用 没有break会造成case穿透
三、循环语句
断点测试
- 作用:学习时可以帮助更好的理解代码运行,工作时可以更快找到bug
- 浏览器打开调试界面
- 按F12/右键检查打开开发者工具
- 点到sources一栏
- 双击选择代码文件
- 选择需要断点的行
- 刷新页面
- 点击这个按钮执行下一行代码
- 断点:在某句代码上加的标记就叫断点,当程序执行到这句有标记的代码时会暂停下来
while循环
- while循环语法:
while (循环条件){
要重复执行的代码(循环体)
}
- 跟if语句很像,都要满足小括号里的条件为true才会进入 循环体 执行代码
- while大括号里代码执行完毕后不会跳出,而是继续回到小括号里判断条件是否满足,若满足又执行大括号里的代码,然后再回到小括号判断条件,直到括号内条件不满足,即跳出
- while循环的三要素
- 定义变量起始值
- 设置终止条件(没有终止条件,循环会一直执行,造成死循环)
- 定义变量变化量(用自增或者自减)
let i = 1 //1. 变量起始值
while (i<=3){ //2. 终止条件
document.write(`我会循环三次`)<br>
i++ //变量变化量
}
- 循环退出
- 循环结束:
- break:退出循环
- continue:结束本次循环,继续下次循环
- 区别:
- continue 退出本次循环,一般用于排除或者跳过某一个选项的时候, 可以使用continue
- break 退出整个循环,一般用于结果已经得到, 后续的循环不需要的时候可以使用
for循环
1. for循环基本使用
- 语法
for (变量起始值; 终止条件; 变量变化量){
//循环体
}
- 退出循环
continue 退出本次循环,一般用于排除或者跳过某一个选项的时候, 可以使用continue
break 退出整个for循环,一般用于结果已经得到, 后续的循环不需要的时候可以使用 - 无限循环
while(true) 来构造“无限”循环,需要使用break退出循环。
for(;😉 也可以来构造“无限”循环,同样需要使用break退出循环。
2. 循环嵌套
语法:
for (外部声明记录循环次数的变量;循环条件;变化值) {
for(内部声明记录循环次数的变量;循环条件;变化值){
循环体
}
}