运算符:算术运算符→赋值运算符→一元运算符→比较运算符→逻辑运算符→运算符优先级→语句→表达式和→分支语句→循环语句
算术运算符
数学运算符也叫算术运算符,主要包括加、减、乘、除、取余(求模)。
+:求和
-:求差
*:求积
/:求商
%:取模(取余数)
重点:!开发中经常作为某个数字是否被整除
优先级顺序
同时使用多个运算符编写程序时,会按着某种顺序先后执行,我们称为优先级。 JavaScript中 优先级越高越先被执行,优先级相同时以书从左向右执行。
乘、除、取余优先级相同
加、减优先级相同
乘、除、取余优先级大于加、减
使用 () 可以提升优先级
总结: 先乘除后加减,有括号先算括号里面的~~~
console.log(1 + 2 *3) // 7
console.log(10 - 8 / 2) // 6
console.log(2 % 5 + 4 * 2) // 10
计算圆的面积
<script>
let r = prompt('请您输入半径')
let result = 3.14 * r * r
document.write(`计算之后圆的面基是:${result}`)
</script>
赋值运算符
赋值运算符:对变量进行赋值的运算符
已经学过的赋值运算符:= 将等号右边的值赋予给左边, 要求左边必须是一个容器
其他赋值运算符:
+=
-=
*=
/=
%=
使用这些运算符可以在对变量赋值时进行快速操作
我们以 += 赋值运算符来举例
- 以前我们让一个变量加 1 如何做的?
<script>
let num = 1
num = num + 1
console.log(num) //结果为 2
</script>
- 现在我们有一个简单的写法啦~~~
<script>
let num = 1
num += 1
console.log(num) //结果为 2
</script>
一元运算符
众多的 JavaScript 的运算符可以根据所需表达式的个数,分为一元运算符、二元运算符、三元运算符
二元运算符:
例:
let num = 10 + 20
一元运算符:
例: 正负号
问题: 我们以前让一个变量每次+1 ,以前我们做的呢?
let num = 1 let num = 1
num = num + 1 num += 1
能够使用一元运算符做自增运算
我们可以有更简便的写法了~~~
自增:
符号:++
作用:让变量的值 +1
自减:
符号:--
作用:让变量的值 -1
使用场景:
经常用于计数来使用。 比如进行10次操作,用它来计算进行了多少次了
自增运算符的用法:
前置自增:
let num = 1
++ num //让num的值加 1变2
每执行1次,当前变量数值加1
其作用相当于 num += 1
后置自增:
let num = 1
num++ //让num的值加 1变2
每执行1次,当前变量数值加1 其作用相当于 num += 1
自增运算符的用法:
前置自增:
前置自增:先自加再使用(记忆口诀:++在前 先加)
let i = 1
console.log(++i + 2) 结果是 4
// 注意: i 是 2
// i先自加1,变成2之后,在和后面的2相加
后置自增:
后置自增:先使用再自加(记忆口诀:++在后 后加)
let i = 1
console.log(i++ + 2) 结果是 3
// 注意: 此时的i是1
// 先和2相加,先运算输出完毕后,i再自加是2
自增运算符的用法:
- 前置自增和后置自增独立使用时二者并没有差别!
- 一般开发中我们都是独立使用
- 后面 i++ 后置自增会使用相对较多
比较运算符
学习路径:
- 比较运算符的介绍
- 比较运算符的使用
- 比较运算符的细节
比较运算符的介绍
作用:比较两个数据大小、是否相等
实际运用例:
比较运算符的使用
比较运算符:
>: 左边是否大于右边
<: 左边是否小于右边
>=: 左边是否大于或等于右边
<=: 左边是否小于或等于右边
==: 左右两边是否相等
===: 左右两边是否类型和值都相等
!==: 左右两边是否不全等
比较结果为boolean类型,即只会得到true或false
<script>
console.log(3 > 5) // false
console.log(5 >= 5) // true
// console.log(5 = 5)
console.log(5 == 5)
console.log(5 == '5')
// == 只要值一元就是true 不管数据类型
console.log(5 == 'pink')
//=== 以后判断要用 === 开发常用 要求值和数据类型都一样
console.log(5 === 5)
console.log(5 === '5')
// 特殊情况
console.log('pink' > 'red')
console.log('pink' > 'pin')
console.log(1 === NaN)
console.log(0.1 + 0.2 === 0.3)
console.log(0.1 + 0.2)
console.log(3 > '2')
console.log(5 !== 4)
</script>
比较运算符的细节
字符串比较,是比较的字符对应的ASCII码
- 从左往右依次比较
- 如果第一位一样再比较第二位,以此类推
- 比较的少,了解即可
NaN不等于任何值,包括它本身
尽量不要比较小数,因为小数有精度问题
不同类型之间比较会发生隐式转换
- 最终把数据隐式转换转成number类型再比较
- 所以开发中,如果进行准确的比较我们更喜欢 === 或者 !==
逻辑运算符
学习路径:
- 逻辑运算符的介绍
- 逻辑运算符的使用
- 逻辑运算符里的短路
1、逻辑运算符的介绍
如果我想判断一个数据大于5且小于10,怎么办?
错误写法: 5 < 数据 < 10
逻辑运算符用来解决多重条件判断
2、逻辑运算符的使用
逻辑运算符:
&& 逻辑与 并且 符号两边都为true 结果才为true 一假则假
|| 逻辑或 或者 符号两边有一个 true就为true 一真则真
! 逻辑非 取反 true变false false变true 真变假,假变真
3、逻辑运算符里的短路
短路:只存在于 && 和 || 中,当满足一定条件会让右边代码不执行
符号 短路条件
&& 左边为false就短路
|| 左边为true就短路
原因:通过左边能得到整个式子的结果,因此没必要再判断右边
运算结果:无论 && 还是 || ,运算结果都是最后被执行的表达式值,一般用在变量赋值
console.log(false && 20)// false
console.log(5 < 3 && 20) // flase
console.log(undefined && 2) // undefined
console.log(nul1 && 2) // null
console.log(9 && 2) //
console.log(1 && 20) // 20
console.log(false || 20) //20
console.log(5 < 3 || 20) // 20
console.log(undefined || 20) // 20
console.log(null || 20) // 20
console.log(0 || 20) // 20
console.log(10 || 20) // 10
判断一个数是4的倍数,且不是100的倍数
<script>
let num = +prompt('请输入一个数字:')
// console.log(num) 控制台是空字符串 '' 当假看
num = num || 0
// console.log(num)
console.log(num % 4 === 0 && num % 100 !== 0)
</script>
运算符优先级
掌握运算符优先级,能判断运算符执行的顺序
一元运算符里面的逻辑非优先级很高
逻辑与比逻辑或优先级高