js常用的运算符分为算数运算符、关系运算符、逻辑运算符、赋值运算符
算数运算符
+ | - | * | / | ++ | -- | % |
加 | 减 | 乘 | 除 | 自增 | 自减 | 取余(取模) |
自增表示自身加1,自减表示自身减1
//写在后面时,先参与运算,再自增
let num1 = 10;
console.log(num1++); // 10
//写在前面时,先自增,再参与运算
let num2 = 10;
console.log(++num2); // 11
取余表示除以一个数,得到的结果为余数
let num = 10;
console.log(num % 3); // 1
关系运算符
> | < | >= | <= | == | === | != | !== |
大于 | 小于 | 大于等于 | 小于等于 | 等于 | 全等于 | 不等于 | 不全等于 |
关系运算符得到的结果都是布尔值,即 true / false
console.log(5 < 10); //true
==用来判断两边的值是否相等,===会判断值和类型都是否相等
!=和!==则相反,判断是否不相等
console.log(1 == '1'); // true
console.log(1 === '1'); // false
console.log(1 != '1'); // false
console.log(1 !== '1'); // true
逻辑运算符
&& | || | ! |
逻辑与 | 逻辑或 | 逻辑非 |
&& 会先判断左边是否为true,如果为true,则返回右边的值,如果为false,则返回左边的值
// && 左边为true,则返回右边的值
console.log(2>1 && 1<2); // true
// 如果左边结果不为布尔值,则会先转为布尔值再判断
// 非0数字、非空字符串转为布尔值为 true
// 0、''、null、undefined 转为布尔值为 false
console.log(5 && 6); // 6
// 逻辑与短路:当&&左边为false时,右边的值将不再计算
let num = 10;
console.log(0 && ++num); // 0
console.log(num); // 10
|| 会先判断左边是否为true,如果为true,则返回左边的值,如果为false,则返回右边的值
! 逻辑非就是取反的意思
console.log(!6); // false
赋值运算符
= | += | -= | *= | /= | %= |
赋值 | 加法赋值 | 减法赋值 | 乘法赋值 | 除法赋值 | 取余赋值 |
赋值运算符,将自己与右边的值进行计算后,再赋值给自己
let num = 10;
num += 20;
console.log(num); // 30
let num2 = 10;
num /= 5;
console.log(num); // 2
ecma262规范文档:ECMAScript® 2024 Language Specification