热搜:fiddler git ip ios 代理
历史搜索

快速了解ES14新特性 提高你的编码效率

游客2024-07-30 08:53:01
目录文章目录
  1. toSorted()方法
  2. toReversed()方法:
  3. Array.prototype.with 方法:
  4. Array.prototype.findLast 方法:
  5. findLastIndex()方法:
  6. Array.prototype.toSpliced 方法:
  7. Shebang 支持:
  8. 扩展弱引用集合键:

今天要给大家带来的分享 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,奠定了基础。

标签:ES14新特性