管理

(转载)20个JavaScript重点知识点(8)运算符

Posted on 2025-06-12 09:42  lzhdim  阅读(9946)  评论(0)    收藏  举报

算术运算符

用于数学计算,返回数值结果。

运算符描述示例
+ 加法 5 + 3 → 8
- 减法 10 - 4 → 6
* 乘法 2 * 6 → 12
/ 除法 15 / 3 → 5
% 取模(余数) 10 % 3 → 1
** 指数(ES6) 2 ** 4 → 16
++ 自增 let a=5; a++ → 6
-- 自减 let b=8; b-- → 7

注意

  • ++a(前置)与 a++(后置)的区别:

let x = 5;console.log(x++); // 输出5,之后x变为6console.log(++x); // 输出7(x先变为6,再自增到7)

赋值运算符

为变量分配值,可结合算术运算。

运算符示例等价于
= x = 10 -
+= x += 5 x = x + 5
-= x -= 3 x = x - 3
*= x *= 2 x = x * 2
/= x /= 4 x = x / 4
%= x %= 3 x = x % 3
**= x **= 2 x = x ** 2

 

比较运算符

返回布尔值(true/false)。

运算符描述示例
== 松散相等(自动类型转换) 5 == "5" → true
=== 严格相等(值和类型均相同) 5 === "5" → false
!= 松散不等 5 != "6" → true
!== 严格不等 5 !== "5" → true
> 大于 10 > 6 → true
< 小于 3 < 2 → false
>= 大于等于 7 >= 7 → true
<= 小于等于 5 <= 3 → false

建议:始终优先使用 === 和 !== 避免隐式类型转换错误。

逻辑运算符

处理布尔逻辑,支持短路求值。

运算符描述示例
&& 逻辑与(全部为真) true && false → false
|| 逻辑或(任一为真) true || false →  true
! 逻辑非 !true → false

 

短路求值特性

// &&:遇到假值立即返回false && console.log("不会执行");
// ||:遇到真值立即返回true || console.log("不会执行");

位运算符(二进制操作)

直接操作二进制位。

运算符描述示例   
& 按位与 5 & 1 → 1 (0101 & 0001)      
` ` 按位或 `5 1 → 5` (0101 0001)
^ 按位异或 5 ^ 1 → 4 (0101 ^ 0001)      
~ 按位非 ~5 → -6      
<< 左移 5 << 1 → 10      
>> 右移 5 >> 1 → 2      
>>> 无符号右移 -5 >>> 1 → 2147483645      

其他运算符

1. 条件(三元)运算符

const status = age >= 18 ? "成年" : "未成年";

2. 类型运算符

typeof: 检测变量类型

typeof "Hello" → "string"typeof null → "object" (历史遗留问题)

instanceof: 检测对象类型

[] instanceof Array → true

3. 逗号运算符

按顺序执行表达式,返回最后一个结果:

let a = (1 + 2, 3 + 4); // a = 7

4. delete 运算符

删除对象属性或数组元素:

const obj = { x: 1 };delete obj.x; // obj变为 {}

5. void 运算符

执行表达式并返回 undefined

<a href="javascript:void(0)">点击不跳转</a>

注意事项和常见错误

1. + 运算符的类型转换

5 + "5" → "55"   // 数字转字符串5 + true → 6     // true转为15 + null → 5     // null转为0

2. NaN 的特殊性

NaN === NaN → false   // 判断NaN需用 isNaN()0 / 0 → NaN           // 无效运算返回NaN

3. 浮点数精度问题

0.1 + 0.2 → 0.30000000000000004 // 使用toFixed()处理显示

4. 对象比较的陷阱

{} === {} → false  // 对象比较的是内存地址

总结

掌握JavaScript运算符需注意:

  1. 严格相等:优先使用 === 代替 ==

  2. 短路运算:利用 && 和 || 简化条件判断

  3. 类型转换:注意隐式转换带来的意外结果

  4. 优先级规则:复杂表达式建议用 () 明确优先级

Copyright © 2000-2022 Lzhdim Technology Software All Rights Reserved