恋の歌的logo
分类 归档 标签

ECMAScript2017(es8)新特性

发表于2020-08-18
更新于2024-12-26
分类于编程
总字数419
阅读时长 ≈2 分钟

前言 🔗

ECMAScript2017(es8)新特性。

正文 🔗

padStartpadEnd 🔗

这两个函数顾名思义,就是往头部和尾部填充东西的,可以来个例子理解下(以padStart为例子)。

javascript
let a = "nick";
a.padStart(10, "123"); // 输出 '123123nick'
a.padStart(10); // 输出 '      nick'
a.padStart(1); // 输出 'nick'
a.padStart(5, "123"); // 输出 '1nick'

默认使用空格填充,第一个参数是指填充完字符串的长度,而不是填充串的长度。

如果第一个参数小于了原字符串的长度,那么直接返回原字符串。

Object.valuesObject.entries 🔗

之前如果需要遍历对象的属性的话,一般是用es5Object.keys来获取对象的键数组,再根据键数组来遍历对象。

javascript
var o = { a: 1, b: 2 };
var keys = Object.keys(o); // keys = ['a','b'];

而现在可以直接拿到对象的值数组。

javascript
var o = { a: 1, b: 2 };
var values = Object.values(o); // values = [1, 2]

当然也可以用keys方法来实现这个操作。

javascript
var values = Object.keys(o).map((key) => o[key]);

也可以直接拿到对象的键值对数组了。

javascript
var o = { a: 1, b: 2 };
var entries = Object.entries(o); // entries = [['a', 1], ['b', 2]]

依然可以用keys来实现这个操作。

javascript
var entries = Object.entries(o).map((key) => [key, o[key]]);

map天下第一!!!)

总体上是趋于直接性和易读性的一个特性。

Object.getOwnPropertyDescriptors 🔗

获取当前对象自身的属性描述符的数组,不包括原型链上的

javascript
var o = { name: "Dedicatus545", age: 22 };
Object.getPrototypeOf(o).myProperty = "property in prototype";
var descriptors = Object.getOwnPropertyDescriptors(o);
// 输出 (不包括myProperty属性的描述符对象)
// {
//   name: {
//     value: 'Dedicatus545',
//       writable: true,
//       enumerable: true,
//       configurable: true
//   },
//   age: {
//     value: 22,
//     writable: true,
//     enumerable: true,
//     configurable: true
//   }
// }
哦呐该,如果没有评论的话,瓦达西...