深入浅出ES6(一):ES6是什么

article/2025/9/3 2:29:14

深入浅出ES6(一):ES6是什么

作者 Jason Orendorff ,译者 刘振涛 发布于 2015年6月5日 | 


http://www.infoq.com/cn/articles/es6-in-depth-an-introduction

  • 我的阅读清单

编者按:ECMAScript 6离我们越来越近了,作为它最重要的方言,Javascript也即将迎来语法上的重大变革,InfoQ特开设“深入浅出ES6”专栏,来看一下ES6将给我们带来哪些新内容。本专栏文章来自Mozilla Web开发者博客,由作者授权翻译并发布。

欢迎来到ES6深入浅出!JavaScript的新版本离我们越来越近,我们将通过每周一节的系列课程一起探索ECMAScript 6新世界。ES6中包含了许多新的语言特性,它们将使JS变得更加强大,更富表现力。在接下来的几周内,我们将一一深入了解它们。但在我们开始详细学习之前,我认为十分有必要花几分钟讲解一下ES6到底是什么,以及你可以从中学到什么!

ECMAScript发生了什么变化?

编程语言JavaScript是ECMAScript的实现和扩展,由ECMA(一个类似W3C的标准组织)参与进行标准化。ECMAScript定义了:

  • 语言语法 – 语法解析规则、关键字、语句、声明、运算符等。
  • 类型 – 布尔型、数字、字符串、对象等。
  • 原型和继承
  • 内建对象和函数的标准库 – JSON、Math、数组方法、对象自省方法等。

ECMAScript标准不定义HTML或CSS的相关功能,也不定义类似DOM(文档对象模型)的Web API,这些都在独立的标准中进行定义。ECMAScript涵盖了各种环境中JS的使用场景,无论是浏览器环境还是类似node.js的非浏览器环境。

新标准

上周,ECMAScript语言规范第6版最终草案提请Ecma大会审查,这意味着什么呢?

这意味着在今年夏天,我们将迎来最新的JavaScript核心语言标准

这无疑是一则重磅新闻。早在2009年,上一版ES5刚刚发布,自那时起,ES标准委员会一直在紧锣密鼓地筹备新的JS语言标准——ES6。

ES6是一次重大的版本升级,与此同时,由于ES6秉承着最大化兼容已有代码的设计理念,你过去编写的JS代码将继续正常运行。事实上,许多浏览器已经支持部分ES6特性,并将继续努力实现其余特性。这意味着,在一些已经实现部分特性的浏览器中,你的JS代码已经可以正常运行。如果到目前为止你尚未遇到任何兼容性问题,那么你很有可能将不会遇到这些问题,浏览器正飞速实现各种新特性。

版本号6

ECMAScript标准的历史版本分别是1、2、3、5。

那么为什么没有第4版?其实,在过去确实曾计划发布提出巨量新特性的第4版,但最终却因想法太过激进而惨遭废除(这一版标准中曾经有一个极其复杂的支持泛型和类型推断的内建静态类型系统)。

ES4饱受争议,当标准委员会最终停止开发ES4时,其成员同意发布一个相对谦和的ES5版本,随后继续制定一些更具实质性的新特性。这一明确的协商协议最终命名为“Harmony”,因此,ES5规范中包含这样两句话:

ECMAScript是一门充满活力的语言,并在不断进化中。

未来版本的规范中将持续进行重要的技术改进。

这一声明许下了一个未来的承诺。

兑现承诺

2009年发布的改进版本ES5,引入了Object.create()、Object.defineProperty()、getters和setters、严格模式以及JSON对象。我已经使用过所有这些新特性,并且我非常喜欢ES5做出的改进。但事实上,这些改进并没有深入影响我编写JS代码的方式,对我来说最大的革新大概就是新的数组方法:.map()、. filter()这些。

但是,ES6并非如此!经过持续几年的磨砺,它已成为JS有史以来最实质的升级,新的语言和库特性就像无主之宝,等待有识之士的发掘。新的语言特性涵盖范围甚广,小到受欢迎的语法糖,例如箭头函数(arrow functions)和简单的字符串插值(string interpolation),大到烧脑的新概念,例如代理(proxies)和生成器(generators)。

ES6将彻底改变你编写JS代码的方式!

这一系列旨在向你展示如何仔细审阅ES6提供给JavaScript程序员的这些新特性。

我们将从一个经典的“遗漏特性”说起,十年来我一直期待在JavaScript中看到的它。所以从现在起就加入我们吧,一起领略一下ES6迭代器(iterators)和新的for-of循环!


感谢刘振涛对本文的策划,徐川对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群InfoQ好读者)。

【ArchSummit深圳2016】15大精彩专题,50位大咖讲师,Cloudera、Hearsay Social、Uber、LinkedIn、Twitter等等,你将为哪家公司技术点赞?阿里巴巴、腾讯、百度、美团、饿了么、滴滴、新浪微博等等,核心业务技术较量谁又能触动你的神经...最精彩的技术切磋从这开始,ArchSummit九折门票倒计时,详情请点击。

http://chatgpt.dhexx.cn/article/WHhmyxhe.shtml

相关文章

[ 前端开发 ] 为什么要学习ES6?

ECMAScript 6 概念 ECMAScript 6 简称 ES6 为什么要学习ES6? ES6 是 JavaScript 的下一个版本标准,诞生于2015年6月份。ES6 的主要目的是为了解决 ES5 的先天不足。ES6 的终极目标是为了使 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业…

前端基础之ES6

ES6 ES6简介 ES6实际上是一个泛指,泛指ES2015及后续版本 为什么使用ES6? 每一次标准的诞生都意味着语言的完善,功能的加强。JavaScript语言本身也有一些令人不满意的地方。 变量提升特性增加了程序运行时的不可预测性语法过于松散&#x…

第一节:ES是什么?ES6是什么?

系列文章目录 第一节:ES是什么?ES6是什么? 文章目录 系列文章目录前言一、ES是什么?二、ES6是什么? 前言 学习一下ES,都是自己学习的总结和理解,大家有什么问题都可以提出,一起讨论…

1.什么是ES6,为什么使用它

1.什么是ES6? ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。Mozilla公司将在这个标准的基础上,推出JavaScript 2.0。ES6主要是为了解决ES5的先天不足,比如JavaScri…

ES6是什么

ES6是什么 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。 它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 现在大部分的编…

ES6是什么?通俗理解

1.了解一门语言,首先要搞明白它到底是什么? ECMA (Eurupean Compuler Manuluclurers Assuxiation)中文名为欧洲计算机制造商协会,这个组织的日常是评估、开发和认可电信和计算机标准。19919 年后该组织改名为ECMA国际。 ES6是门脚本语言&…

list集合转换成string字符串

集合转换成字符串 闲来无事&#xff0c;总结了几种list转换成string的方法 第一种 <jdk8新特性&#xff0c;string集合、integer集合均可随意转换成string> 个人觉得这个方法应该属于jdk8的新特性 ArrayList<String> arrayList new ArrayList<String>(){{…

python set转为list_python 怎么把set转成list

今天小就为大家分享一篇python-list,set间的转换实例&#xff0c;具有很好的参考价值&#xff0c;推荐手册&#xff1a;Python 基础入门教程 其实python中&#xff0c;set转list的非常的简单&#xff0c;直接将set的值放入list()的括号中即可&#xff0c;相反&#xff0c;list转…

Java list转set;JDK8 下list 集合转Set 集合

List 集合转Set 集合 1. List 集合和Set 集合的区别 在说如何List集合转Set 集合之前我们先回顾一下 List 集合和Set 集合的区别, 细致上说List 集合和Set 集合的区别还是有蛮多的有兴趣的同学可以去看一下源码&#xff0c;粗糙地讲List 集合和Set 集合的区别主要有那么几点 …

Java中的List与Set转换

一、List列表与Set列表的区别 List列表是有序、可以重复、线程不安全的列表,Set是无序、不能重复、线程不安全的列表。但List和Set可以通过方法来转换为线程安全的&#xff0c;加互斥锁。 Set<Long> setnew HashSet<>();// 转换为线程安全的集合Collections.sy…

BigDecimal中divide方法与setScale方法详解

BigDecimal中divide方法详解 1、首先说一下用法&#xff0c;BigDecimal中的divide主要就是用来做除法的运算。其中有这么一个方法. public BigDecimal divide(BigDecimal divisor,int scale, int roundingMode)第一个参数是除数&#xff0c;第二个参数代表保留几位小数&#x…

BigDecimal加减乘除及setScale的用法小结

Bigdecimal初始化&#xff1a; BigDecimal num new BigDecimal(2.225667);//这种写法不允许&#xff0c;会造成精度损失。 BigDecimal num new BigDecimal("2.225667");//一般都会这样写最好。 两种方式在下面会有实例比较。 一、setScale 1. ROUND_DOWN BigDecima…

2018年5-7月面试经历总结:阿里面试题

第一轮&#xff1a;电话初面 第二轮&#xff1a;技术面谈【技术职位尽量避免多谈管理上的工作】 第三轮&#xff1a;高管复试 第四轮&#xff1a;HR最后确认 一面&#xff1a;首先确认对阿里的意向度&#xff08;如果异地更会考虑对工作地点(杭州&#xff09;的意向度&#…

腾讯、阿里面试题 了解B+树吗?

腾讯、阿里面试题: 了解B树吗&#xff1f; 由于MySQL的索引结构是B树&#xff0c;所以B树是大厂的高频面试题,想理解B树&#xff0c;最好先理解B树&#xff0c;下面详细介绍B树、B树 B树 B树的概念 B树又称为B-树&#xff0c;是一种平衡多路查找树&#xff0c;描述B树&#x…

2021.3.10阿里面试题

获得第一行 n m ktempinput() templisttemp.split(" ") nint(templist[0]) mint(templist[1]) kint(templist[2])获得城市二维列表city[] for i in range(n):temp input()templist list(temp)if in templist: #找到起始位置&#xff0c;然后记录下标&…

阿里巴巴面试题- - -JVM篇(十四)

前言&#xff1a;七月末八月初的时候&#xff0c;秋招正式打响&#xff0c;公司会放出大量的全职和实习岗位。为了帮助秋招的小伙伴们&#xff0c;学长这里整理了一系列的秋招面试题给大家&#xff0c;所以小伙伴们不用太过焦虑&#xff0c;相信你们一定能超常发挥&#xff0c;…

总结一下软通外派阿里的面试题

前段时间&#xff0c;面了几家大外派到阿里的项目&#xff0c;所以和大家分享一下面试题 上来就是老套路 面试官&#xff1a;说下你们项目的流程 果咩&#xff1a; 巴拉巴拉。。。。 面试官&#xff1a;你们项目如何使用redis高可用的 果咩&#xff1a;可以使用哨兵模式和C…

阿里巴巴一面 :十道经典面试题解析

1. 用到分布式事务嘛?为什么用这种方案,有其他方案嘛? 什么是分布式事务 谈到事务&#xff0c;我们就会想到数据库事务&#xff0c;很容易就想到原子性、一致性、持久性、隔离性。 分布式事务跟数据库事务有点不一样&#xff0c;它是指事务的参与者、支持事务的服务器、资源…

46 道阿里巴巴 Java 面试题,你会几道?

做技术的有一种资历&#xff0c;叫做通过了阿里的面试。 这些阿里 Java 相关问题&#xff0c;都是之前通过不断优秀人才的铺垫总结的&#xff0c;先自己弄懂了再去阿里面试&#xff0c;不然就是去丢脸&#xff0c;被虐。 希望对大家帮助&#xff0c;祝面试成功&#xff0c;有…

最新出炉的阿里巴巴面试题及答案汇总(513页)

前言 秋招已经结束了&#xff0c;不知道各位有没有拿到自己心仪的offer&#xff1f;最近有不少粉丝去阿里巴巴面试了&#xff0c;回来之后我整理成了一份手册java面试时常用到的面试题&#xff08;附答案&#xff09;那么今天分享给大家&#xff0c;祝愿大家都能找到满意的工作…