一、Array.prototype.flat()
?和?flatMap()
(數組扁平化)
(1)flat(depth)
-
將嵌套數組“拉平”到指定深度(默認?
depth=1
)。const arr = [1, [2, [3]]]; arr.flat(); // [1, 2, [3]](默認深度 1) arr.flat(2); // [1, 2, 3](深度 2)
(2)flatMap()
-
先對數組每個元素執行映射,再將結果扁平化(深度固定為 1)。
const arr = ["Hello", "World"]; arr.flatMap(str => str.split("")); // ["H", "e", "l", "l", "o", "W", "o", "r", "l", "d"]
適用場景:
-
處理嵌套數組(如 API 返回的多維數據)
-
合并映射和扁平化操作(比?
map
?+?flat
?更高效)
?
二、Object.fromEntries()
(鍵值對轉對象)
-
將鍵值對列表(如?
Map
、Array
)轉換為對象,是?Object.entries()
?的逆操作。const entries = [ ['name', 'Alice'], ['age', 30] ]; const obj = Object.fromEntries(entries); // { name: "Alice", age: 30 }
典型用途:
-
將?
URLSearchParams
?轉為對象 -
轉換?
Map
?為普通對象const params = new URLSearchParams("name=Alice&age=30"); Object.fromEntries(params); // { name: "Alice", age: "30" }
?三、String.prototype.trimStart()
?和?trimEnd()
-
分別移除字符串開頭或結尾的空格(別名:
trimLeft()
?/?trimRight()
)。const str = " Hello "; str.trimStart(); // "Hello " str.trimEnd(); // " Hello"
-
對比舊方法:
-
trim()
:移除兩端空格。 -
trimStart()
/trimEnd()
:更精確控制。
四、Optional Catch Binding
(可選的?catch
?參數)
-
允許省略?
catch
?中的錯誤參數(如果不需要使用錯誤對象)。try {JSON.parse("invalid json"); } catch { // 不需要寫 catch (error)console.log("解析失敗"); }
適用場景:
-
不需要處理具體錯誤時簡化代碼。
五、Symbol.prototype.description
-
獲取?
Symbol
?的描述字符串(定義時的參數)。const sym = Symbol("自定義描述"); sym.description; // "自定義描述"
用途:
-
調試時快速查看?
Symbol
?的用途。
六、JSON.stringify
?改進
-
修復對?
\u2028
(行分隔符)和?\u2029
(段落分隔符)的序列化,使其符合 JSON 標準。// 早期版本會將這些字符轉義為 \uXXXX,現在直接輸出 JSON.stringify("\u2028"); // ""\u2028""
七、Function.prototype.toString()
?改進
-
返回函數完整的原始代碼(包括注釋和空格),而不僅是?
"function() { ... }"
。function foo() {// 這是一個函數console.log("Hello"); } foo.toString(); // 完整輸出: // "function foo() { // // 這是一個函數 // console.log("Hello"); // }"
用途:
-
動態代碼分析、代碼格式化工具。
八、Array.prototype.sort()
?穩定排序
-
規定?
sort()
?必須使用穩定排序算法(相同元素保持原始順序)。const users = [{ name: "Alice", age: 30 },{ name: "Bob", age: 25 },{ name: "Alice", age: 20 } ]; // 按 name 排序后,相同 name 的 age 順序不變 users.sort((a, b) => a.name.localeCompare(b.name));
影響:
-
對復雜對象的排序更可靠。
注:如有缺失,請聯系作者或在下方評論,我盡量在第一時間補充上去!!!??
?
?
?
?
?
?
?