邏輯賦值
· 閱讀時間約 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 語言特性允許在數字字面值中使用底線作為分隔符。因此,可以將上述數字重新編寫,以每千位分組為例: