- toSorted()方法
- toReversed()方法:
- Array.prototype.with 方法:
- Array.prototype.findLast 方法:
- findLastIndex()方法:
- Array.prototype.toSpliced 方法:
- Shebang 支持:
- 扩展弱引用集合键:
今天要给大家带来的分享 ES14 中的所有新特性提高编码效率。
ECMAScript 规范是 JavaScript 开发人员和教育者的基本参考,也是 JavaScript 引擎实现者的官方技术规范。这个规范是一个活动的文档,会随着语言的发展而更新。
toSorted()方法
数组原型对象的toSorted()
方法:这是一个新的数组方法,与sort()
方法类似,但它创建并返回一个**「新的数组」**,而不是在原数组上进行排序。
let arr = [5,4,2,3,1] arr === arr.sort(); // true arr === arr.toSorted(); // false 形成新数组,所以为 False
使用比较函数:toSorted()
方法接受一个可选的比较函数参数,允许用户自定义排序逻辑。
let arr = [5,4,2,3,1].toSorted((a,b)=>{ return b - a; })
toReversed()方法:
类似于reverse()
,但返回一个新的数组而不是原地操作。
["1","2","3","4","5"].toReversed(); // ['5', '4', '3', '2', '1']
Array.prototype.with 方法:
允许根据索引修改数组中的单个元素,并返回新数组。
const arr4 = ["I", "am", "rex"]; const newArr4 = arr4.with(2, "Ape Man"); console.log(newArr4); // output : I am Ape Man
Array.prototype.findLast 方法:
从数组中获取最后一个匹配元素的实例。
onst arr = [24, 34, 55, 75, 10, 77]; const lastEvenIndex = arr.findLast((element) => { return element % 2 === 0; }); console.log(lastEvenIndex); // 10
findLastIndex()方法:
与findLast()
类似,但返回匹配元素的索引。
Array.prototype.toSpliced 方法:
类似于数组的 splice 方法,但返回一个新数组。
Shebang 支持:
ECMAScript 14 支持在 JavaScript 文件中使用 shebang,允许直接运行脚本。
console.log("Hello, world!");
代码告诉操作系统使用 node 程序来运行这个脚本。现在,你可以直接输入命令来运行它。如果没有 Shebang 注释, ../hello.js这样是行不通的。Shebang 支持是规范中的一个功能更新,已经在多个上下文中非官方地采用和实现。
无需像以前node ./hello.js
扩展弱引用集合键:
ES14 允许在集合中使用大多数符号作为键,而以前只能使用对象。
// create a weak map function useSymbol(symbol){ doSomethingWith(symbol); var called = map.get(symbol) || 0; called++; // called one more time if(called > 2) console.log(“Called more than twice”); map.set(symbol, called); } let mySymbol = Symbol(“FooBar”); useSymbol(mySymbol); useSymbol(mySymbol); useSymbol(mySymbol);
这样可以让我们更好的使用 WeakMap。现在的 Key 只需要定义一个唯一的 Symbol 类型即可。
尽管 2023 年对 JavaScript 来说变化不大,但 ECMAScript 14 的更新使得官方规范与现实世界保持了同步,并为未来的变化,如全新的 Temporal API,奠定了基础。