js常用操作符
-
常用运算符
-
条件运算符(三元运算符)
? :
-
语法:
condition ? exprIfTrue : exprIfFalse
-
用途: 根据条件
condition
的结果选择执行两个表达式中的一个。如果condition
为真,则执行exprIfTrue
;否则执行exprIfFalse
。
-
-
空值合并运算符
??
- 用途: 返回其两个操作数中的一个,如果第一个操作数为
null
或undefined
,则返回第二个操作数;否则返回第一个操作数。 - 这个运算符用于处理默认值的情况,当一个变量可能为
null
或undefined
时,可以使用它来提供一个替代的默认值。
- 用途: 返回其两个操作数中的一个,如果第一个操作数为
-
可选链运算符
?.
- 用途: 允许安全地读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。
- 如果在访问链的任何部分遇到
null
或undefined
,那么表达式的求值将立即停止,并返回undefined
。
-
按位或运算符
|
- 用途: 对两个整数进行按位或运算。对于每一位,只要有一个操作数的对应位为1,结果就为1;否则为0。
- 此外,单个竖线
|
也可以用于将浮点数转换为32位有符号整数(通过与0进行按位或运算)。
-
逻辑或运算符
||
- 用途: 对两个表达式进行逻辑或运算。如果第一个表达式为真(即不是
false
,0
,""
,null
,undefined
, 或NaN
),则返回第一个表达式;否则返回第二个表达式。 - 常用于设置默认值,类似于
??
,但会处理更多的“假”值。
- 用途: 对两个表达式进行逻辑或运算。如果第一个表达式为真(即不是
-
按位与运算符
&
- 用途: 对两个整数进行按位与运算。对于每一位,只有当两个操作数的对应位都为1时,结果才为1;否则为0。
-
逻辑与运算符
&&
- 用途: 对两个表达式进行逻辑与运算。如果第一个表达式为假,则返回第一个表达式;如果第一个表达式为真,则返回第二个表达式。
- 常用于确保多个条件都为真时才执行某些代码,或者用于短路求值。
-
-
算术运算符
-
+
加法 -
-
减法 -
*
乘法 -
/
除法 -
%
取模(求余数) -
**
幂运算(指数)let sum = 5 + 3; // 8 let difference = 10 - 4; // 6 let product = 7 * 6; // 42 let quotient = 15 / 3; // 5 let remainder = 17 % 5; // 2 let power = 2 ** 3; // 8
-
-
赋值运算符
-
=
简单赋值 -
+=
加后赋值 -
-=
减后赋值 -
*=
乘后赋值 -
/=
除后赋值 -
%=
取模后赋值 -
**=
幂运算后赋值
-
-
比较运算符
-
==
松散相等 (会进行类型转换) -
===
严格相等 (不会进行类型转换) -
!=
松散不相等 -
!==
严格不相等 -
>
大于 -
<
小于 -
>=
大于等于 -
<=
小于等于
-
-
逻辑运算符
&&
逻辑与||
逻辑或!
逻辑非
let isAdult = age >= 18 && age <= 65; let hasPermission = isUser || isAdmin; let isNotAvailable = !isAvailable;
-
位运算符
对数字的二进制表示进行操作
-
&
按位与 -
|
按位或 -
^
按位异或 -
~
按位非 -
<<
左移 -
>>
带符号右移 -
>>>
无符号右移let result = 5 & 3; // 1 result = 5 | 3; // 7 result = 5 ^ 3; // 6 result = ~5; // -6 result = 5 << 1; // 10 result = 5 >> 1; // 2 result = 5 >>> 1; // 2 (对于正数,与 `>>` 相同)
-
-
类型运算符
-
typeof
返回一个字符串,指示操作数的类型 -
instanceof
用于检查对象是否是某个构造函数的实例console.log(typeof 42); // "number" console.log(typeof "hello"); // "string" console.log([] instanceof Array); // true
-
-
其他运算符
-
,
逗号运算符:可以在一条语句中执行多个表达式。 -
delete
:删除对象的属性。 -
in
:检查对象是否有指定的属性。 -
new
:创建一个用户定义的对象类型的实例,或特殊对象类型的实例。 -
...
扩展运算符/剩余参数:用于解构数组或对象,或者作为函数参数列表中的剩余参数。let obj = { a: 1, b: 2 }; delete obj.a; // 删除属性 'a' console.log('b' in obj); // true let arr = [1, 2, 3]; let newArr = [...arr, 4, 5]; // 使用扩展运算符复制并添加元素 function add(...args) { return args.reduce((a, b) => a + b, 0); } console.log(add(1, 2, 3)); // 6
-