>>>=是什么意思?

在检查 lodash 代码时,我提出了一个我很好奇的问题。

// slice.js
function slice(array, start, end) {
  let length = array == null ? 0 : array.length
  if (!length) {
    return []
  }
  start = start == null ? 0 : start
  end = end === undefined ? length : end

  if (start < 0) {
    start = -start > length ? 0 : (length + start)
  }
  end = end > length ? length : end
  if (end < 0) {
    end += length
  }
  length = start > end ? 0 : ((end - start) >>> 0)
  start >>>= 0

  let index = -1
  const result = new Array(length)
  while (++index < length) {
    result[index] = array[index + start]
  }
  return result
}

export default slice
  1. 具体来说,我很好奇为什么这段代码存在于这部分。
((end - start) >>> 0)

据我所知,位运算符会移动二进制数的位置,但我很好奇它为什么会移动 0 次。

  1. >>>=
  • >>>=这个运营商是我第一次看到。有谁知道这是什么意思?

回答

>>>称为无符号右移(或零填充右移)。您可能知道左移/右移。基本上它将指定的位数向右移动。你可以在这里找到

所以>>>=基本上是正确的班次分配

a >>>= b

相当于:

a = a >>> b


以上是&gt;&gt;&gt;=是什么意思?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>