JavaScript 常用的操作符可以分为以下几类:
7. 类型操作符(Type Operators)
typeof返回变量类型(如"string"、"number")instanceof检查对象是否属于某个类
js
console.log(typeof 123); // "number"
console.log([] instanceof Array); // true
8. 其他常用操作符
in检查对象是否有某个属性(如'name' in obj)delete删除对象属性(如delete obj.name)?.可选链(避免undefined报错,如obj?.prop)??空值合并(如x ?? 'default',仅在x为null或undefined时生效)...展开/剩余操作符(用于数组或对象)
js
delete删除元素 delete this.items[element]
`in` 操作符用于检查一个对象或其原型链中是否包含某个**属性名**
(即键名,字符串类型)。它不会检查属性值。
// 可选链
const user = { name: 'Alice' };
console.log(user?.address?.city); // undefined(不会报错)
// 空值合并
const score = 0;
console.log(score || 'N/A'); // 'N/A'(0 是 falsy)
console.log(score ?? 'N/A'); // 0(只有 null/undefined 会被替换)
// 展开操作符
const arr1 = [1, 2];
const arr2 = [...arr1, 3]; // [1, 2, 3]
总结
| 类别 | 操作符示例 | ||
|---|---|---|---|
| 其他 | in, delete, ?., ??, ... |
||
| 算术 | +, -, *, /, %, ** |
||
| 赋值 | =, +=, -=, *=, /=, %= |
||
| 比较 | ==, ===, >, <, >=, <= |
||
| 逻辑 | &&, 或, ! |
||
| 位运算 | &, 或,~, <<, >> |
||
| 条件 | condition ? expr1 : expr2 |
||
| 类型 | typeof, instanceof |
掌握这些操作符是 JavaScript 编程的基础!
1. 算术操作符(Arithmetic Operators)
用于数学计算:
+加法(也可用于字符串拼接)-减法*乘法/除法%取模(求余数)**指数(如2 ** 3返回8)++自增(x++或++x)--自减(x--或--x)
js
console.log(5 + 3); // 8
console.log(10 % 3); // 1
console.log(2 ** 4); // 16
2. 赋值操作符(Assignment Operators)
用于变量赋值:
=基本赋值+=加后赋值(x += 2等价于x = x + 2)-=减后赋值*=乘后赋值/=除后赋值%=取模后赋值**=指数后赋值
js
let x = 5;
x += 3; // x = 8
3. 比较操作符(Comparison Operators)
用于比较值,返回 true 或 false:
==相等(会进行类型转换)===严格相等(值和类型都相同)!=不相等!==严格不相等>大于<小于>=大于等于<=小于等于
js
console.log(5 == '5'); // true(类型转换)
console.log(5 === '5'); // false(严格比较)
console.log(10 > 5); // true
4. 逻辑操作符(Logical Operators)
用于布尔逻辑运算:
&&逻辑与(两个条件都为true才返回true)||逻辑或(至少一个为true就返回true)!逻辑非(取反)
js
console.log(true && false); // false
console.log(true || false); // true
console.log(!true); // false
5. 位操作符(Bitwise Operators)
对二进制位进行操作(较少使用):
&按位与|按位或^按位异或~按位非<<左移>>右移>>>无符号右移
js
console.log(5 & 3); // 1(0101 & 0011 = 0001)
6. 条件(三元)操作符(Ternary Operator)
condition ? expr1 : expr2
如果 condition 为 true,返回 expr1,否则返回 expr2。
js
const age = 20;
const status = age >= 18 ? 'Adult' : 'Minor';
console.log(status); // 'Adult'