• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • Atomics.exchange()

    Experimental:这是一个实验中的功能
    此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

    Atomics.exchange()静态方法会用给定的值替换掉数组上的值,然后返回数组的旧值。此原子操作保证在写上修改的值之前不会发生其他写操作。

    尝试一下

    语法

    Atomics.exchange(typedArray, index, value)
    

    参数

    typedArray

    一个共享的整型 typed array。例如Int8ArrayUint8ArrayInt16ArrayUint16ArrayInt32Array,或Uint32Array

    index

    被替换的typedArray值的索引。

    value

    去替换的值。

    返回值

    给定位置的旧值(typedArray[index])。

    错误

    • 假如typedArray不是允许的整型之一,则抛出TypeError
    • 假如 typedArray不是一个贡献的 typed array,则抛出TypeError
    • 如果index超出了typedArray 的边界,则抛出RangeError

    示例

    var sab = new SharedArrayBuffer(1024);
    var ta = new Uint8Array(sab);
    
    Atomics.exchange(ta, 0, 12); // returns 0, the old value
    Atomics.load(ta, 0); // 12