Jinuss's blog Jinuss's blog
首页
  • 源码合集

    • Leaflet源码分析
    • Openlayers源码合集
    • vue3源码
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • 学习
  • 实用技巧
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

东流

Web、WebGIS技术博客
首页
  • 源码合集

    • Leaflet源码分析
    • Openlayers源码合集
    • vue3源码
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • 学习
  • 实用技巧
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • React

  • Vue

  • JavaScript文章

  • 学习笔记

  • openlayers

  • threejs

  • MapboxGL

  • 工具

  • 源码合集

  • ECMAScript历年新特性

    • ECMAScript2016(ES7)新特性
    • ECMAScript2017(ES8)新特性
      • 概述
      • ECMAScript2017(ES8)
        • Object方面
        • 浏览器兼容性
        • 浏览器兼容性
        • String方面
        • 浏览器兼容性
        • async和await
        • 浏览器兼容性
        • SharedArrayBuffer对象
        • 浏览器兼容性
        • Atomics对象
        • 浏览器兼容性
    • ECMAScript2018(ES9)新特性
    • ECMAScript2019(ES10)新特性
    • ECMAScript2020(ES11)新特性
    • ECMAScript2021(ES12)新特性
    • ECMAScript2022(ES13)新特性
    • ECMAScript2023(ES14)新特性
    • ECMAScript2024(ES15)新特性
    • ECMAScript2025(ES16)新特性
  • 前端
  • ECMAScript历年新特性
东流
2025-07-30
目录

ECMAScript2017(ES8)新特性

# 概述

ECMAScript2017于2017年6月正式发布, 本文会介绍ECMAScript2017(ES8),即ECMAScript的第8个版本的新特性。

以下摘自官网:ecma-262 (opens new window)

ECMAScript 2017 introduced Async Functions, Shared Memory, and Atomics along with smaller language and library enhancements, bug fixes, and editorial updates. Async functions improve the asynchronous programming experience by providing syntax for promise-returning functions. Shared Memory and Atomics introduce a new memory model that allows multi-agent programs to communicate using atomic operations that ensure a well-defined execution order even on parallel CPUs. It also included new static methods on Object: Object.values, Object.entries, and Object.getOwnPropertyDescriptors.

# ECMAScript2017(ES8)

ES8 新增了一些新特性,比如:

  • Object.values:返回对象所有属性值value的数组
  • Object.entries:返回对象所有属性键值对[key,value]的数组
  • Object.getOwnPropertyDescriptors:返回对象所有属性的描述符
  • String.prototype.padStart和String.prototype.padEnd:用于字符串补全
  • async/await:异步编程的新方式
  • SharedArrayBuffer:共享内存的新方式
  • Atomics:原子操作的新方式

# Object方面

  • Object.values和Object.entries中返回的数组顺序都是以与for in循环所提供顺序相同,

# 浏览器兼容性

  • Object.getOwnPropertyDescriptors方法会返回指定对象的所有属性描述符,对象自身的属性描述符是直接在对象上定义的,不会从对象的原型继承。

# 浏览器兼容性

# String方面

padStart和padEnd方法用于从前或从后补全字符串,会返回补全后的新字符串,不会改变原字符串。其语法如下:

padStart(targetLength, padString)
padEnd(targetLength, padString)
1
2

targetLength:

  • 目标长度,即补全后的字符串长度
  • 如果目标长度小于等于当前字符串长度,返回当前字符串

padString:

  • 补全字符串,默认使用空格补全
  • 如果padString长度大于目标长度,会截取超出部分

# 浏览器兼容性

# async和await

async和await就是异步编程的语法糖,可以使异步代码看起来像同步代码一样。

# 浏览器兼容性

# SharedArrayBuffer对象

SharedArrayBuffer是一种新的内存模型,用于在多个线程之间共享内存。该模型通常用来表示一个通用的,固定长度的原始二进制数据缓冲区,但是其不能被分离。

# 浏览器兼容性

# Atomics对象

共享内存能被同时创建和更新于工作线程或主线程。

Atomics对象提供了一组静态方法,用于在SharedArrayBuffer对象上执行原子操作。Atomics对象不是构造函数,因此不能使用new运算符,也不能当做函数直接调用。其所有属性和方法都是静态的,类似与Math对象。

# 浏览器兼容性

编辑 (opens new window)
上次更新: 2025/07/30, 07:22:20
ECMAScript2016(ES7)新特性
ECMAScript2018(ES9)新特性

← ECMAScript2016(ES7)新特性 ECMAScript2018(ES9)新特性→

最近更新
01
Set和WeakSet
08-04
02
Map和WeakMap
08-04
03
ECMAScript2025(ES16)新特性
07-30
更多文章>
Theme by Vdoing | Copyright © 2024-2025 东流 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式