ES10/ES2019 新函数和方法及新功能有哪些

2019-03-1520:18:54WEB前端开发Comments2,781 views字数 1604阅读模式

ES10/ES2019 在本次更新中有很大的改进。它引入了一些新的函数和方法,使开发者能够编写更少的代码,并提高工作效率。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

让我们直接进入正题。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

flat()

flat() 是一种用于展平数组的方法。在某些时候,数组的元素还是数组,这些类型的数组称为嵌套数组。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

要取消数组的嵌套(展平它们),我们不得不使用递归。现在引入 flat(),可以用一行代码完成。 一个被展平的数组是一个深度为 0 的数组,flat() 接受一个参数,一个代表深度的数字。深度指的是数组内嵌套的数量。下面这个例子可以帮你理解嵌套和深度。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

ES10/ES2019 新函数和方法及新功能有哪些

一个深度为 3 的嵌套数组上面是一个深度为 3 的数组。它是一个数组在另一个数组的内部,又在另一个数组内部,又在另一个数组内部 ???。通常在 JavaScript 中,数组的深度可以为无穷大,或者直到内存不足为止。假设一个数组的嵌套深度为3,并且我们仅将其展平到深度 2,那么主数组中仍然会存在一个嵌套数组。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

句法

ES10/ES2019 新函数和方法及新功能有哪些

返回值

它返回一个扁平数组。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

示例

ES10/ES2019 新函数和方法及新功能有哪些

flat() 展平一个深度为3的嵌套数组,参数深度为3。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

如果将参数深度设为2,我们得到:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

ES10/ES2019 新函数和方法及新功能有哪些

可以看到输出中仍然有一个未展平的数组。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

flatMap()

flatMap() 用于展平嵌套数组并根据给出的像 map() 这样的函数更改值。此函数作用于数组并用一个回调函数作为参数。回调函数用于指示数组应该怎样被展平。它就像 map 一样工作,此外也使它变得扁平。如果你想了解有关 map 的更多信息,请查看关于this的文章。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

flatMap() 可用于展平深度为1的数组,它在内部调用 map 函数,后跟着参数深度为1的 flat 函数,。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

句法

ES10/ES2019 新函数和方法及新功能有哪些

返回值

带有操纵值的扁平数组,由提供给它的回调函数提供。就像一个map一样。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

map() + flat() => flatmap()文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

示例

ES10/ES2019 新函数和方法及新功能有哪些

在此例中,我们逐个显示 map 和 flatMap 以显示两个函数之间的差异。 map() 返回嵌套数组,而flatMap() 的输出除了数组的展平外,还与 map 的结构相同。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

Object.fromEntries()

另一个非常有用的函数 Object.fromEntries 用于根据提供的键值对生成对象。它接受一个键值对列表,并返回一个对象,对象的属性由参数 entries 给出。它的作用与 **Object.entries()**相反。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

参数

接受任何可迭代的对象,即数组。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

返回值

返回有给定键值对的对象。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

示例

ES10/ES2019 新函数和方法及新功能有哪些

我们可以看到,当向 fromEntries() 函数提供了一个map(将值成对存储)时,会得到一个对象,其对应的键值对和 map 中一样。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

trimStart()

trimStart() 方法删除字符串开头的空格。 trimLeft() 是此方法的别名。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

句法

ES10/ES2019 新函数和方法及新功能有哪些

返回值

返回一个字符串,前面的空格被删除。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

示例

ES10/ES2019 新函数和方法及新功能有哪些

可以清楚地看到输出中删除的空格。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

trimEnd()

trimEnd() 方法删除字符串末尾的空格。 trimRight() 是此方法的别名。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

句法

ES10/ES2019 新函数和方法及新功能有哪些

返回值

它返回一个字符串,末尾所有的空格被删除。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

示例

ES10/ES2019 新函数和方法及新功能有哪些

我们可以清楚地看到末尾的空格被删除。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

修改 catch 绑定

在 ES10 之前,我们必须通过语法为 catch 子句绑定异常变量,无论是否有必要。很多时候 catch 块是多余的。 ES10 提案使我们能够简单的把变量省略掉。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

示例

ES10/ES2019 新函数和方法及新功能有哪些

在上面的例子中,可以看到没有为 catch 提供变量。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

符号描述

当我们在 JS 中创建一个 Symbol 时,可以指定一个在以后用于调试的描述。得到这个描述的过程有点无聊,必须再次重新构造 Symbol,并在 toString() 方法的帮助下才能访问描述。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

ES10添加了一个新的名为 description 的只读属性,它返回 Symbol 的描述。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

示例

ES10/ES2019 新函数和方法及新功能有哪些

可以看到使用 Symbol 的.description 属性能够直接获取描述。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

作者:疯狂的技术宅
链接:https://juejin.im/post/5c8a14ba5188251bde6be098
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/9988.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/gcs/9988.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定