JavaScript 面试题
目录

JavaScript 中位运算符的用法?

· 约 3 分钟读完 · 第 333 / 507 章

推荐答案

本题详细解读

位运算符概述

位运算符直接操作二进制位,适用于整数类型的数据。JavaScript 中的位运算符包括:

  1. 按位与 (&):对两个操作数的每一位进行与操作,只有两个位都为 1 时,结果位才为 1。
  2. 按位或 (|):对两个操作数的每一位进行或操作,只要有一个位为 1,结果位就为 1。
  3. 按位异或 (^):对两个操作数的每一位进行异或操作,当两个位不同时,结果位为 1。
  4. 按位非 (~):对操作数的每一位进行取反操作,1 变 0,0 变 1。
  5. 左移 (<<):将操作数的二进制位向左移动指定的位数,右边空出的位用 0 填充。
  6. 右移 (>>):将操作数的二进制位向右移动指定的位数,左边空出的位用符号位填充。
  7. 无符号右移 (>>>):将操作数的二进制位向右移动指定的位数,左边空出的位用 0 填充。

示例解析

  • 按位与 (&):5 & 3 的结果是 1,因为 0101 & 0011 的结果是 0001。
  • 按位或 (|):5 | 3 的结果是 7,因为 0101 | 0011 的结果是 0111。
  • 按位异或 (^):5 ^ 3 的结果是 6,因为 0101 ^ 0011 的结果是 0110。
  • 按位非 (~):~5 的结果是 -6,因为 ~0101 的结果是 1010(在 JavaScript 中,负数以补码形式表示)。
  • 左移 (<<):5 << 1 的结果是 10,因为 0101 左移一位变为 1010。
  • 右移 (>>):5 >> 1 的结果是 2,因为 0101 右移一位变为 0010。
  • 无符号右移 (>>>):5 >>> 1 的结果是 2,因为 0101 右移一位变为 0010。

注意事项

  • 位运算符在处理大整数时可能会导致精度丢失,因为 JavaScript 中的数字是以 64 位浮点数表示的。
  • 位运算符通常用于性能优化或处理底层数据,但在现代 JavaScript 开发中,使用场景相对较少。