逻辑赋值
· 阅读需 4 分钟
JavaScript 支持一系列复合赋值运算符,允许程序员简洁地表达二元运算和赋值。当前,仅支持数学或按位运算。
JavaScript 支持一系列复合赋值运算符,允许程序员简洁地表达二元运算和赋值。当前,仅支持数学或按位运算。
如果你曾经处理过 JavaScript 中的字符串,很可能遇到过 String#replace
方法。String.prototype.replace(searchValue, replacement)
根据你指定的参数返回一个替换了一些匹配项的字符串:
一般来说,JavaScript 中对象的引用是_强引用_,这意味着只要你有对对象的引用,它就不会被垃圾回收。
const ref = { x: 42, y: 51 };
// 只要你可以访问到 `ref`(或其他对同一对象的引用),这个对象就不会被垃圾回收。
目前,WeakMap
和 WeakSet
是在 JavaScript 中以某种方式弱引用对象的唯一方式:将一个对象作为键添加到 WeakMap
或 WeakSet
中不会阻止它被垃圾回收。
const wm = new WeakMap();
{
const ref = {};
const metaData = 'foo';
wm.set(ref, metaData);
wm.get(ref);
// → metaData
}
// 我们在这个代码块作用域中不再拥有对 `ref` 的引用,因此它现在可以被垃圾回收,尽管它是 `wm` 中的一个键,而我们仍然可以访问到 `wm`。
自从 ES2015 引入 Promise 后,JavaScript 支持的 Promise 组合器只有两个:静态方法 Promise.all
和 Promise.race
。
目前有两个新提案正在进行标准化过程:Promise.allSettled
和 Promise.any
。随着这些新增内容,JavaScript 中将总共有四种 Promise 组合器,每种都支持不同的使用场景。
大型数字字面量对人眼来说难以快速解析,特别是当数字中有大量重复数字时:
1000000000000
1019436871.42
为了提高可读性,一个新的JavaScript语言特性允许在数字字面量中使用下划线作为分隔符。因此,上述内容现在可以改写为按千分进行分组,例如: