ES2017
async/await
Object.values()
Object.entries()
padStart(len,s)
用另一个字符串从开始位置填充当前字符串,使产生的字符串达到给定长度。
1 | const ID = '320322199902223529'; |
padEnd(len,s)
在末尾填充,规则跟padStart
的一致
1 | const ID = '320322199902223529'; |
函数参数逗号结尾
1 | // 参数定义 |
如果没有参数就只有逗号会报错
1 | // 带有尾后逗号的数组解构 |
同样地,在使用剩余参数时,会抛出 SyntaxError,代码如下:
1 | var [a, ...b,] = [1, 2, 3] // SyntaxError: rest element may not have a trailing comma |
ShareArrayBuffer
因安全性问题,暂时在 Chrome 和 FireFox 中被禁用。
用来表示一个通用的、固定长度的原始二进制缓冲区,类似 ArrayBuffer 对象。它们可以用来在共享内存上创建视图。与 ArrayBuffer 不同的是,ShareArrayBuffer 不能被分离。
1 | let sab=new SharedArrayBuffer(1024); |
Atomics
对象
对ShareArrayBuffer
对象进行原子操作。
Atomics.add()
,将指定位置上的数组元素与给定的值相加并返回该元素更新前的值。Atomics.compareExchange()
,如果数组中指定的元素与给定的值相等,将其更新为新的值,并返回该元素更新前的值。Atomics.exchange()
,将数组中指定的元素更新为给定的值,并返回该元素更新前的值。Atomics.load()
,返回数组中指定元素的值Atomics.or()
,将指定位置上的数组元素与给定的值相或,并返回该元素更新前的值。Atomics.store()
,将数组中指定的元素设置为给定的值,返回该值。Atomics.sub()
,将指定位置上的数组元素与给定的值相减,并返回该元素更新前的值。Atomics.xor()
,将指定位置上的数组元素与给定的值相异或,并返回该元素更新前的值。Atomics.wait()
,检测数组中某个指定位置上的值是否仍然是给定值,是则保持挂起直到被唤醒或超时。返回值为 “ok”、”not-equal” 或 “time-out”。调用时,如果当前线程不允许阻塞,则会抛出异常(大多数浏览器都不允许在主线程中调用 wait())。Atomics.wake()
:唤醒等待队列中正在数组指定位置的元素上等待的线程。返回值为成功唤醒的线程数量。Atomics.isLockFree(size)
:可以用来检测当前系统是否支持硬件级的原子操作。对于指定大小的数组,如果当前系统支持硬件级的原子操作,则返回 true;否则就意味着对于该数组,Atomics 对象中的各原子操作都只能用锁来实现。此函数面向的是技术专家。
Object.getOwnPropertyDescriptors()
获取一个对象的所有自身属性的描述
1 | const object1 = { |