ES6(一)简介

本文最后更新于:8 个月前

ES6指什么?它与ES2015是什么关系?ES6有哪些新特性?ES6的兼容性如何?

ES6(一)简介

一、ES6是什么

不管是面试,还是学习过程中,我们都经常听见一个名词——ES6。那么ES6究竟是什么?

「ES6」 泛指 「ES5.1」之后的 ECMAScript版本,也可以称为“JavaScript语言的下一代版本”。

我们常把 5.1 之前的 ECMAScript 版本统称做 「ES5」,将 6 版本之后的版本统称做 「ES6」(因为从 2015 年起,ECMAScript 终于步入正轨,每年发布一次版本,到了 2021 年,已经发布了 6 个版本了,实在太多,所以用变革了 JavaScript 时代的 ES6 作为后续版本的代称)。所以「ES6」代表的不仅仅是「ES2015」,而是指「ES2015」及其之后的所有ECMAScript版本

二、ES6 的新内容

下面对「ES6」的新内容做一个罗列

  1. 基本变量
    • 变量声明:let 和 const
    • 变量的解构赋值
    • 字符串的扩展,如:模板字符串
    • 字符串新增方法,如:includes()、startsWith()
    • 数值的扩展,如新增BigInt类型
  2. 基本引用类型
    • RegExp 的扩展,如:对RegExpd构造函数进行了完善
    • Math 的扩展,增加了与数学相关的方法
  3. 集合引用类型
    • 数组的扩展,如:扩展运算符,新增Array.from()
    • 新增 Set 和 Map
  4. 对象
    • 对象属性的简写表示法,即直接在对象大括号里写入变量或函数
    • 属性名表达式
    • 扩展运算符和解构赋值
  5. 类,ES6引入了类
  6. Module模块化
  7. Promise,ES6原生提供了Promise对象,用于异步编程,替代传统的回调函数+事件
  8. Generator函数,ES6提供的异步编程解决方案
  9. async函数,Generator的语法糖
  10. 新增Proxy对象拦截器
  11. Reflect对象,为了操作对象提供的新API

对于上述内容,有一些只需做简单的了解,因为实际使用的场景较少,可以在需要用到时候再深入探究,如Reflect、Generator、以及众多的不常用的新特性。

有一些需要做深入的探究,因为需要频繁在开发中用到,如let和const的使用,Set和Map,数组的扩展,解构赋值、扩展运算符等等。深入掌握这些知识,能够明显提高开发效率和质量。

其中有一些内容,我已经在JavaScript基础、JavaScript进阶板块中探究过了,所以在ES6这个板块中就不再重复。

三、ES6兼容性

ES6的兼容性问题来源于:浏览器版本的发布时间早于ES6的定稿和发布。

ECMAScript 2015 (ES6) | Can I use… Support tables for HTML5, CSS3, etc 该网站可以查询浏览器对ES6的支持程度。

image-20230326115240329

可以看到(如果我没看错的话),我的浏览器(Edge111)对ES6新特性的支持程度为97.68%,也即是说,即使最新版本的浏览器也未必支持ES6的所有新特性。

为了兼容更多的浏览器版本,有一些工具可以将ES6语法转换成ES5语法,如:Babel转码器。


ES6(一)简介
http://timegogo.top/2023/03/26/JavaScript/ES6(一)简介/
作者
丘智聪
发布于
2023年3月26日
更新于
2023年7月16日
许可协议