📜  ES8-新功能(1)

📅  最后修改于: 2023-12-03 15:30:38.663000             🧑  作者: Mango

ES8-新功能介绍

ES8 (ECMAScript 2017) 是 JavaScript 的一个标准版本,它引入了一些新的功能和语法,这些功能使编写 JavaScript 应用程序更容易和更便捷。以下是 ES8 中的新功能。

Object.entries()

Object.entries() 方法返回一个给定对象自身可枚举属性的键值对数组。它的返回值是一个二维数组,其中每个子数组包含两个元素,第一个元素是对象的属性名,第二个元素是对象的属性值。

const obj = {
  name: 'John',
  age: 30,
  city: 'New York'
};

const entries = Object.entries(obj);

console.log(entries);
// output: [ [ 'name', 'John' ], [ 'age', 30 ], [ 'city', 'New York' ] ]
Object.values()

Object.values() 方法返回一个给定对象自身可枚举属性的值的数组,按照与 Object.entries() 相同的顺序进行排序。

const obj = {
  name: 'John',
  age: 30,
  city: 'New York'
};

const values = Object.values(obj);

console.log(values);
// output: [ 'John', 30, 'New York' ]
String padding

在 ES8 中,String 对象新增了两个方法:padStart()padEnd(),用于在字符串的开头 (padStart()) 或结尾 (padEnd()) 填充空格。这些方法带有两个参数:填充字符的长度和填充字符的字符串。

const str = 'hello';

const paddedStrStart = str.padStart(10, ' ');

console.log(paddedStrStart);
// output: '     hello'

const paddedStrEnd = str.padEnd(10, ' ');

console.log(paddedStrEnd);
// output: 'hello     '
Async/await

在 ES8 中,async/await 是一种更优雅和简单的方式来编写异步代码。它可以使异步代码的执行流程更加清晰和易于调试。

async function myFunction() {
  const promise = new Promise((resolve, reject) => {
    setTimeout(() => resolve('Hello World!'), 2000);
  });

  const result = await promise;

  console.log(result);
  // output: 'Hello World!'
}

myFunction();
Object.getOwnPropertyDescriptors()

Object.getOwnPropertyDescriptors() 方法返回指定对象所有自身属性(非继承属性)的描述符。它的返回值类似于 Object.getOwnPropertyDescriptor() 返回的单个描述符,但不包括继承属性。

const obj = {
  name: 'John',
  age: 30,
};

const descriptor = Object.getOwnPropertyDescriptors(obj);

console.log(descriptor);

以上就是 ES8 中的几个新功能介绍。这些功能可以提高编写 JavaScript 应用程序的效率和质量。