阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JS Atomics.xor()

      The static **Atomics**.xor() method computes a bitwise XOR with a given value at a given position in the array, and returns the old value at that position. This atomic operation guarantees that no other write happens until the modified value is written back.

      The source for this interactive example is stored in a GitHub repository. If you’d like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.

      Syntax

      Atomics.xor(typedArray, index, value)
      
      

      Parameters

      typedArray

      A shared integer typed array. One of Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, or Uint32Array.

      index

      The position in the typedArray to compute the bitwise XOR.

      value

      The number to compute the bitwise XOR with.

      Return value

      The old value at the given position (typedArray[index]).

      Exceptions

      • Throws a TypeError, if typedArray is not one of the allowed integer types.
      • Throws a TypeError, if typedArray is not a shared typed array type.
      • Throws a RangeError, if index is out of bounds in the typedArray.

      Description

      The bitwise XOR operation yields 1, if a and b are different. The truth table for the XOR operation is:

      aba ^ b
      000
      011
      101
      110

      For example, a bitwise XOR of 5 & 1 results in 0100 which is 4 in decimal.

      5  0101
      1  0001
         ----
      4  0100
      
      

      Examples

      var sab = new SharedArrayBuffer(1024);
      var ta = new Uint8Array(sab);
      ta[0] = 5;
      
      Atomics.xor(ta, 0, 1); // returns 5, the old value
      Atomics.load(ta, 0);  // 4
      

      Specifications

      SpecificationStatusComment
      ECMAScript Latest Draft (ECMA-262)The definition of ‘Atomics.xor’ in that specification.DraftInitial definition in ES2017.

      See also

      目录
      目录