1、算数运算符
【解释】: 数学运算符也叫算术运算符,主要包括加、减、乘、除、取余(求模)
- +:求和
- -:求差
- *:求积
- /:求商
- %:取模(取余数)
【JavaScript算术运算符执行的优先级顺序】:
- 乘、除、取余优先级相同
- 加、减优先级相同
- 使用 () 可以提升优先级
- 总结: 先乘除后加减,有括号先算括号里面的
【算术运算符代码案例】
<script>
let r = prompt('请输入圆的半径?');
let result = parseFloat(3.14 * r * r);
document.write(`半径为${r}的圆的面积是:${result}`);
</script>
2、赋值运算符
【解释:】 对变量进行赋值的运算符。
- 已经学过的赋值运算符:= 将等号右边的值赋予给左边, 要求左边必须是一个变量
- 其他运算符
- +=
- -=
- *=
- /=
- %=
代码示例:
<script>
let num = 10
num = num + 1
num = num + 5
num += 5
console.log(num)
// 两个变量的 把i加到 sum 里面去
let i = 1
let sum = 0
sum = sum + i
sum += i
</script>
3、一元运算符
【解释】: JavaScript 的运算符可以根据所需表达式的个数,分为一元运算符、二元运算符、三元运算符
【示例】
- 一元运算符:
<script>
let num = 10
// 一元运算符
// ++num 等价于 num += 1
num++
// console.log(num)
// 前置自增
let i = 1
// 先自加 再使用
console.log(++i + 2) // 4
// 后置自增
let i = 1
// 先使用 后自加
console.log(i++ + 2) //
console.log(i)
</script>
- 二元运算符 :
let sum = 10 + 10
++i与i++的区别:
- 前置自增:先自加再使用(记忆口诀:++在前 先加)
- 后置自增:先使用再自加(记忆口诀:++在后 后加)
4、比较运算符
【介绍】: 比较两个数据大小、是否相等。
比较运算符的使用:
- {> }: 左边是否大于右边
- <: 左边是否小于右边
- {>=}: 左边是否大于或等于右边
- <=: 左边是否小于或等于右边
- ==: 左右两边是否相等
- ===: 左右两边是否类型和值都相等
- !==: 左右两边是否不全等
- 比较结果为boolean类型,即只会得到true或false
注意事项:
- 字符串比较,是比较的字符对应的ASCII码。
- 从左往右依次比较
- 如果第一位一样再比较第二位,以此类推
- NaN不等于任何值,包括它本身
- 尽量不要比较小数,因为小数有精度问题
- 不同类型之间比较会发生隐式转换
- 最终把数据隐式转换转成number类型再比较
- 所以开发中,如果进行准确的比较我们更喜欢 === 或者 !==
代码示例:
<script>
console.log(3 > 5) // false
console.log(5 >= 5) // true
console.log(5 = 5) //报错这是赋值的写法同时左边不是一个变量
console.log(5 == 5)
// == 只要值一样就是true 不管数据类型
console.log(5 == '5')
console.log(5 == 'pink')
// === 以后判断要用 === 开发常用 要求值和数据类型都一样
console.log(5 === 5)
console.log(5 === '5')
// 特殊情况
console.log('p' > 'r')
console.log('p' > 'p')
console.log(1 === NaN)
console.log(NaN === NaN)
console.log(0.1 + 0.2 === 0.3)
console.log(0.1 + 0.2)
console.log(3 > '2')
</script>
5、逻辑运算符
【解释】:
逻辑运算符的短路:
- 短路:只存在于 && 和 || 中,当满足一定条件会让右边代码不执行
- 【原因】:通过左边能得到整个式子的结果,因此没必要再判断右边
代码示例:
<script>
// 逻辑与 一假则假
console.log(true && true)
console.log(false && true)
// 逻辑或 一真则真
console.log(false || true)
console.log(false || false)
// 逻辑非 取反
console.log(!true)
console.log(!false)
function fun(x, y) {
x = x || 0
y = y || 0
x + y
}
fun()
</script>