您现在的位置是:首页 > 数码 > 

JavaScript:ES2019新增8个功能

2025-07-18 03:57:50
JavaScript:ES2019新增8个功能 作为最流行的编程语言之一,也是Web主要开发语言,JavaScript不断发展,每次迭代都会获得一些新的内在变化。让我们看看ES2019的一些新提议的功能,这些功能很快就可能出现在我们日常编码中: 一、Array.flat() 您现在可以将嵌套数组按照指定的深度递归展开。默认

JavaScript:ES2019新增8个功能

作为最流行的编程语言之一,也是Web主要开发语言,JavaScript不断发展,每次迭代都会获得一些新的内在变化。让我们看看ES2019的一些新提议的功能,这些功能很快就可能出现在我们日常编码中:

一、Array.flat()

您现在可以将嵌套数组按照指定的深度递归展开。默认值为1,如果要全部展开,可以使用Infinity。这个方法不会修改原始数组,但会创建一个新数组:

ct arr1 = [1, 2, [, 4]];
arr1.flat(); // [1, 2, , 4]ct arr2 = [1, 2, [, 4, [5, 6]]];
arr2.flat(2); // [1, 2, , 4, 5, 6]ct arr = [1, 2, [, 4, [5, 6, [7, 8]]]];
arr.flat(Infinity); // [1, 2, , 4, 5, 6, 7, 8]

如果数组中有一个空槽,它将会被删除:

ct arr4 = [1, 2, , 4, 5];
arr4.flat(); // [1, 2, 4, 5]

二、Array.flatMap()

一种新方法,它结合了基本的map函数,然后使用新的Array.flat()方法将结果展平为深度1

ct arr1 = [1, 2, ];(x => [x * 4]); // [[4], [8], [12]]
arr1.flatMap(x => [x * 4]); // [4, 8, 12]

另一个更有用的例子:

ct sentence = [This is a, regular, sentence];(x => x.split( )); // [[This,is,a],[regular],[sentence]]
sentence.flatMap(x => x.split( )); // [This,is,a,regular, sentence]

三、()和()

除了从字符串两边删除空格的**String.Trim()**以外,现在还有单独的方法只能从每一边删除空格:

ct test =  hello ;(); // hello;
Start(); // hello ;
End(); //  hello;

四、Object.fromEntries

可以将Key-value对列表转换为对象的新方法。我们可以理解为我们已经熟悉的Object.Entries逆向操作。在转换之后,您将留下一个数组,但现在您可以将操纵的数组返回到一个对象中。让我们尝试一个例子,我们想要对所有对象属性的值进行平方

ct obj = { prop1: 2, prop2: 10, prop: 25 };let array = (obj); // [[prop1, 2], [prop2, 10], [prop, 25]]

让我们用一个简单的映射将新的键值对列表的值平方:

array = (([key, value]) => [key, Math.pow(value, 2)]); 
// [[prop1, 4], [prop2, 100], [prop, 225]]

我们已经转换了对象值但我们留下了一个数组,这就是Object.fromEntries的用武之地,将数组转换回对象:

ct newObj = Object.fromEntries(array); // {prop1: 4, prop2: 100, prop: 225}

 

五、可选的Catch Binding

新建议允许您完全省略catch()参数,因为在很多情况下您不想使用它:

try {//...
} catch (er) {//handle error with parameter er
}try {//...
} catch {//handle error without parameter
}

六、Symbol.description

您现在可以访问Symbol的description属性,而不是使用toString()方法:

ct testSymbol = Symbol(Desc);testSymbol.description; // Desc

七、()

现在,在函数上调用toString()会完全按照定义的方式返回函数,包括空格和注释。之前:

function /* foo comment */ foo() {}(); // function foo() {}

现在是:

(); // function /* foo comment /* foo() {}

八、JSO.parse()

现在,行分隔符 (\u2028) 和段落分隔符 (\u2029) 符号正确解析,而不是导致SyntaxError。

原文地址:

 

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/shuma/790998.html

相关标签:无
上传时间: 2024-01-08 10:18:36
留言与评论(共有 19 条评论)
本站网友 仓储费
27分钟前 发表
我们可以理解为我们已经熟悉的Object.Entries逆向操作
本站网友 天津友谊宾馆
23分钟前 发表
[8]
本站网友 尿素氮
15分钟前 发表
Array.flat() 您现在可以将嵌套数组按照指定的深度递归展开
本站网友 岳西美食
11分钟前 发表
让我们看看ES2019的一些新提议的功能,这些功能很快就可能出现在我们日常编码中: 一
本站网友 站点卫士
3分钟前 发表
regular
本站网友 酷派w713
4分钟前 发表
[prop
本站网友 挠脚心图
14分钟前 发表
我们可以理解为我们已经熟悉的Object.Entries逆向操作
本站网友 张三丰的徒弟
21分钟前 发表
本站网友 日出东方太阳能
8分钟前 发表
5] 二
本站网友 ole超市
20分钟前 发表
];(x => [x * 4]); // [[4]
本站网友 深圳度假村
3分钟前 发表
225}   五
本站网友 东丽房屋出租
22分钟前 发表
is
本站网友 桑东亮博客
13分钟前 发表
[5
本站网友 丹东东港市
10分钟前 发表
2
本站网友 蔚州老酒
16分钟前 发表
4]]; arr1.flat(); // [1
本站网友 南非货币
18分钟前 发表
5]; arr4.flat(); // [1
本站网友 深圳小产权房最新政策
13分钟前 发表
a
本站网友 华都美林湾
18分钟前 发表
2