官网现已全新降级—欢送拜访!
数新网络 - 让每个人享受数据的价值
前言
2023 年 6 月 27 日,第 125 届 ECMA 大会正式批准了 ECMAScript 2023 语言标准,这意味着它当初正式成为最新 ECMAScript 规范。上面就来看看 ECMAScript 2023 都有哪些新个性吧!
01 概览
1)从头到尾搜寻数组:findLast()、findLastIndex();
2)Hashbang 语法;
3)通过正本更改数组:toReversed()、toSorted()、toSpliced()、with();
4)Symbol 作为 WeakMap 的键.
02 具体介绍
2-1 findLast()
数组的 find 办法咱们罕用来从前查找符合条件的元素
如果咱们先从后查找元素呢?那么就能够应用 array.findLast
2-2 findLastIndex
咱们能够应用 findLastIndex 来查找数组开端的元素所在位置了
2-3 Hashbang 语法
Unix 的命令行脚本都反对 #! 命令,又称为 Hashbang。这个命令放在脚本的第一行,用来指定脚本的执行器。Hashbang 就是想为 JavaScript 脚本引入了 #! 命令,这个命令写在脚本文件或者模块文件的第一行:
这样,Unix 命令行就能够间接执行脚本了:
不过这样的话,hashbang 就必须严格的在文件头,否则就会呈现语法错误,导致这个 JavaScript 脚本文件无奈应用
2-4 数组的非破坏性办法(通过正本更改数组)
· Array.prototype.toReversed()· Array.prototype.toSorted()· Array.prototype.toSpliced()· Array.prototype.with()
咱们晓得大多数组办法都是非破坏性的,也就是不会更改原数组如 filter
当然,也有一些是破坏性的办法,它们在执行时会扭转原数组,比方 sort() 办法:
在数组的办法中,上面的办法是具备破坏性的:
· reverse()· sort()· splice()
如果想要这些数组办法利用于数组而不扭转它,能够应用上面任意一种模式:
能够看到,咱们首先须要创立数组的正本,再对这个正本进行批改。因而就引入了这三个办法的非破坏性版本,因而不须要手动创立正本再进行操作:
· reverse() 的非破坏性版本:toReversed()· sort() 非破坏性版本:toSorted(compareFn)· splice() 非破坏性版本:toSpliced(start, deleteCount, …items)
这些函数属性引入到了 Array.prototype:
· Array.prototype.toReversed()· Array.prototype.toSorted(compareFn)· Array.prototype.toSpliced(start, deleteCount, …items)· Array.prototype.with(index, value)
除此之外,还有了一个新的非破坏性办法:with()。该办法会以非破坏性的形式替换给定 index 处的数组元素,即 arr[index]=value 的非破坏性版本
Array.prototype.toReversed()toReversed() 是 reverse() 办法的非破坏性版本:
Array.prototype.toSorted()toSorted() 是 sort() 办法的非破坏性版本:
Array.prototype.toSpliced()splice() 办法比其余几种办法都简单,其应用模式:splice(start, deleteCount, …items)。该办法会从从 start 索引处开始删除 deleteCount 个元素,而后在 start 索引处开始插入 item 中的元素,最初返回曾经删除的元素。
toSpliced 是 splice() 办法的非破坏性版本,它会返回更新后的数组,原数组不会变动,并且无奈再失去曾经删除的元素:
Array.prototype.with().with()办法的应用模式:.with(index, value),它是 arr[index] = value 的非破坏性版本:
WeakMap 反对应用 Symbol 作为 key 很久以前,咱们只能应用一个对象作为 WeakMap 的 key。
当初咱们应用“Symbol”作为“WeakMap”的 key。
03 浏览器反对
目前支流浏览器都以反对以上办法