上一篇: javascript数据类型转换
下一篇:没有了
一组用于操作数据值的运算符,包括一元运算符、算术运算符、关系运算符、逻辑运算符、三元运算符等。javascript中的运算符适用于很多值,包括字符串、数值、布尔值、对象
赋值运算符:对变量进行赋值的运算符
= 将等号右边的值赋予给左边, 要求左边必须是一个容器
运算符 | 作用 |
+= | 加法赋值 |
-= | 减法赋值 |
*= | 乘法赋值 |
/= | 除法赋值 |
%= | 取余赋值 |
什么是一元运算符
只能操作一个值的运算符叫做一元运算符。
<script>
let box = 100;
++box; //把box累加一个1,相当于box = box+1
--box; //把box累减一个1,相当于box = box-1
box++; //同上
box--; //同上
</script>
在没有赋值操作,前置和后置是一样的。但在赋值操作时,如果递增或递减运算符前置,那么前置的运算符会先累加或累减再赋值,如果是后置运算符则先赋值再累加或累减
示例
<script>
var num = 100;
var num1 = ++box; //num1值为101
var num2 = box++; //num2值为100
</script>
++前置和++后置在单独使用时二者并没有差别,而且一般开发中我们都是独立使用
5个算术运算符,加减乘除求模(取余)
算术运算符:也叫数学运算符,主要包括加、减、乘、除、取余(求模)等
运算符 | 作用 |
+ | 求和 |
- | 求差 |
* | 求积 |
/ | 求商 |
% | 取模(取余数),开发中经常用于作为某个数字是否被整除 |
示例
<script>
// 算术运算符
console.log(1 + 2 * 3 / 2) // 4
let num = 10
console.log(num + 10) // 20
console.log(num + num) // 20
// 1. 取模(取余数) 使用场景: 用来判断某个数是否能够被整除
console.log(4 % 2) // 0
console.log(6 % 3) // 0
console.log(5 % 3) // 2
console.log(3 % 5) // 3
// 2. 注意事项 : 如果我们计算失败,则返回的结果是 NaN (not a number)
console.log('你好' - 2)
console.log('你好' * 2)
console.log('你好' + 2) // 你好2
</script>
用于进行比较的运算符称作为关系运算符:小于(<)、大于(>)、小于等于(<=)、大于等于(>=)、相等(==)、不等(!=)、全等(恒等)(===)、不全等(不恒等)(!==)
运算符 | 作用 |
> | 左边是否大于右边 |
<< /td> | 左边是否小于右边 |
>= | 左边是否大于或等于右边 |
<=< /td> | 左边是否小于或等于右边 |
=== | 左右两边是否类型和值都相等(重点) |
== | 左右两边值是否相等 |
!= | 左右值不相等 |
!== | 左右两边是否不全等 |
其他运算符一样,当关系运算符操作非数值时要遵循一下规则:
示例
<script>
console.log(3 > 5)
console.log(3 >= 3)
console.log(2 == 2)
// 比较运算符有隐式转换 把'2' 转换为 2 双等号 只判断值
console.log(2 == '2') // true
// console.log(undefined === null)
// === 全等 判断 值 和 数据类型都一样才行
// 以后判断是否相等 请用 ===
console.log(2 === '2')
console.log(NaN === NaN) // NaN 不等于任何人,包括他自己
console.log(2 !== '2') // true
console.log(2 != '2') // false
console.log('a' < 'b') // true
console.log('aa' < 'ab') // true
console.log('aa' < 'aac') // true
</script>
字符串比较,是比较的字符对应的ASCII码
从左往右依次比较
如果第一位一样再比较第二位,以此类推
NaN不等于任何值,包括它本身涉及到"NaN“ 都是false
尽量不要比较小数,因为小数有精度问题
不同类型之间比较会发生隐式转换
最终把数据隐式转换转成number类型再比较
逻辑运算符通常用于布尔值的操作,一般和关系运算符配合使用,有三个逻辑运算符:逻辑与(AND)、逻辑或(OR)、逻辑非(NOT)
符号 | 名称 | 读法 | 特点 | 记忆口诀 |
&& | 逻辑与 | 并且 | 符号两边有一个假的结果为假 | 一假则假 |
|| | 逻辑或 | 或者 | 符号两边有一个真的结果为真 | 一真则真 |
! | 逻辑非 | 取反 | true变false false变true | 真变假,假变真 |
示例
<script>
// 逻辑与 一假则假
console.log(true && true)
console.log(false && true)
console.log(3 < 5 && 3 > 2)
console.log(3 < 5 && 3 < 2)
console.log('-----------------')
// 逻辑或 一真则真
console.log(true || true)
console.log(false || true)
console.log(false || false)
console.log('-----------------')
// 逻辑非 取反
console.log(!true)
console.log(!false)
console.log('-----------------')
let num = 6
console.log(num > 5 && num < 10)
console.log('-----------------')
</script>
三元条件运算符其实就是后面将要学到的if语句的简写形式。
<script>
let num = 5 > 4 ? '对' : '错'; //对,5>4返回true则把'对'赋值给box,反之。
</script>
优先级 | 运算符 | 顺序 |
1 | 小括号 | () |
2 | 一元运算符 | ++ -- ! |
3 | 算术运算符 | 先乘除后加减 |
4 | 关系运算符 | > >= < <=< /td> |
5 | 相当运算符 | == != === != |
6 | 逻辑运算符 | 先&&后|| |
7 | 赋值运算符 | = |
8 | 逗号运算符 | , |
一元运算符里面的逻辑非优先级很高
逻辑与比逻辑或优先级高
上一篇: javascript数据类型转换
下一篇:没有了
*声明:内容来源于网络收集和整理,版权归原著所有,如来源信息有误或侵犯权益,请联系站长作修改和删除处理。