【01】ES6:ECMAScript 介绍

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

参考:《ECMAScript 6 入门教程》

一、ECMAScript 和 JavaScript 关系

一个常见的问题是,ECMAScript 和 JavaScript 到底是什么关系?

要讲清楚这个问题,需要回顾历史。1996 年 11 月,JavaScript 的创造者 Netscape 公司,决定将 JavaScript 提交给标准化组织 ECMA,希望这种语言能够成为国际标准。次年,ECMA 发布 262 号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为 ECMAScript,这个版本就是 1.0 版。

该标准从一开始就是针对 JavaScript 语言制定的,但是之所以不叫 JavaScript,有两个原因。一是商标,Java 是 Sun 公司的商标,根据授权协议,只有 Netscape 公司可以合法地使用 JavaScript 这个名字,且 JavaScript 本身也已经被 Netscape 公司注册为商标。二是想体现这门语言的制定者是 ECMA,不是 Netscape,这样有利于保证这门语言的开放性和中立性。

因此,ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 方言还有 JScript 和 ActionScript)。日常场合,这两个词是可以互换的。

二、ES6 与 ECMAScript 2015 的关系

ECMAScript 2015(简称 ES2015)这个词,也是经常可以看到的。它与 ES6 是什么关系呢?

2011 年,ECMAScript 5.1 版发布后,就开始制定 6.0 版了。因此,ES6 这个词的原意,就是指 JavaScript 语言的下一个版本。

但是,因为这个版本引入的语法功能太多,而且制定过程当中,还有很多组织和个人不断提交新功能。事情很快就变得清楚了,不可能在一个版本里面包括所有将要引入的功能。常规的做法是先发布 6.0 版,过一段时间再发 6.1 版,然后是 6.2 版、6.3 版等等。

但是,标准的制定者不想这样做。他们想让标准的升级成为常规流程:任何人在任何时候,都可以向标准委员会提交新语法的提案,然后标准委员会每个月开一次会,评估这些提案是否可以接受,需要哪些改进。如果经过多次会议以后,一个提案足够成熟了,就可以正式进入标准了。这就是说,标准的版本升级成为了一个不断滚动的流程,每个月都会有变动。

标准委员会最终决定,标准在每年的 6 月份正式发布一次,作为当年的正式版本。接下来的时间,就在这个版本的基础上做改动,直到下一年的 6 月份,草案就自然变成了新一年的版本。这样一来,就不需要以前的版本号了,只要用年份标记就可以了。

ES6 的第一个版本,就这样在 2015 年 6 月发布了,正式名称就是《ECMAScript 2015 标准》(简称 ES2015)。2016 年 6 月,小幅修订的《ECMAScript 2016 标准》(简称 ES2016)如期发布,这个版本可以看作是 ES6.1 版,因为两者的差异非常小(只新增了数组实例的includes方法和指数运算符),基本上是同一个标准。根据计划,2017 年 6 月发布 ES2017 标准。

因此,ES6 既是一个历史名词,也是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了 ES2015、ES2016、ES2017 等等,而 ES2015 则是正式名称,特指该年发布的正式版本的语言标准。本书中提到 ES6 的地方,一般是指 ES2015 标准,但有时也是泛指“下一代 JavaScript 语言”。

三、总结

ECMA

欧洲计算机制造商协会

ES6

ECMAScript 这门标准的第 6 代版本(2015)。ECMAScript 是语言的标准,6 是版本号。

具体内容:语法 + API

历史版本:ES1——>3、ES5——>6(ES4 被废弃了),我们目前使用 JS 的大部分内容都是 ES3 的部分。

ES6 的兼容性:主流浏览器的最新版本几乎都全部支持 ES6; IE 老版本等不支持的浏览器,可以使用 Babel 转码。

ES 与 JS 的关系

JavaScript(浏览器端)= ECMAScript(语法+API)+ DOM + BOM

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/162052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# Winform使用log4net记录日志

写在前面 Log4Net是从Java的log4j移植过来的,功能也与log4j类似,可以把日志信息输出到文件、数据库、控制台、Windows 事件日志、远程系统日志服务等不同的介质或目标。 Log4Net配置选项丰富灵活,并且可在运行时动态更新配置并应用&#xf…

解析紫光展锐T820 5G芯片——让照片接近原色

紫光展锐系统级安全的高性能5G SoC芯片平台T820,采用八核CPU架构,6nm EUV先进工艺,金融级全内置安全方案,在性能、功耗与5G通信体验等方面,较上一代产品更为出色。 此前,已经为大家讲解过T820的拍照、安全性…

mac跑分工具 Geekbench v6.2.2

Geekbench 6 是一款跨平台的系统性能测试软件,可以对处理器和内存等硬件进行评测,并提供了单核和多核两种测试模式。该软件适用于 Windows、macOS、Linux 和 iOS 等多种操作系统平台。 Geekbench 6 测试可以帮助用户快速准确地了解自己设备的性能表现&am…

【brpc学习实践五】brpc自适应限流案例

自适应限流 服务的处理能力是有客观上限的。当请求速度超过服务的处理速度时,服务就会过载。 如果服务持续过载,会导致越来越多的请求积压,最终所有的请求都必须等待较长时间才能被处理,从而使整个服务处于瘫痪状态。 与之相对…

PHP中间件实现

目录 1、简单中间实现 2、使用闭包函数实现中间件 在PHP中,中间件是一种常用的设计模式,用于处理请求和响应,它可以在请求到达目标处理程序之前或响应发送给客户端之前执行一些特定的逻辑。中间件提供了一种灵活的方式来修改或扩展应用程序的…

查看当前laravel版本三种方法(笔记二)

1、在终端中使用 Artisan 命令:在 Laravel 项目的根目录下,打开终端(命令行界面),然后运行以下命令: php artisan --version 2、控制器中打印版本 var_dump(app()->version()); 3、在 Laravel 项目的根目…

【kubernetes】k8s架构之节点

文章目录 1、集群架构示意图2、概述3、管理3.1 节点名称唯一性3.2 节点自注册3.3 手动节点管理 4、节点状态4.1 地址(Addresses)4.2 状况(Condition)4.3 容量(Capacity)与可分配(Allocatable&am…

PTA-输出三角形面积和周长

本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。注意:在一个三角形中, 任意两边之和大于第三边。三角形面积计算公式:areas(s−a)(s−b)(s−c)​,其中s(abc)/2。 输入格式&…

某60区块链安全之Call函数簇滥用实战二学习记录

区块链安全 文章目录 区块链安全Call函数簇滥用实战二实验目的实验环境实验原理实验内容实验步骤EXP利用 Call函数簇滥用实战二 实验目的 学会使用python3的web3模块 学会并区分以太坊call、staticcall、delegatecall三种函数调用的特点 找到合约漏洞进行分析并形成利用 实验…

关于git hooks

Git hooks 是一种在 Git 仓库中触发自定义脚本的机制。这些脚本可以在特定的 Git 操作(如提交、推送、合并等)发生时执行。通过使用 Git hooks,你可以在版本控制的不同阶段自动运行脚本,以执行一些定制化的操作。 在 Git 中&…

03梯度下降

目录 lambda基础知识 代码 核心算法: lambda基础知识 lambda 是 Python 中的一个关键字,用于创建匿名函数。匿名函数是一种没有具体名称的小型、临时的函数,通常用于一次性的、简单的操作。lambda 函数的语法如下:python Copy c…

高效运维工具,助力运维服务商为企业用户提供IT远程维保服务

一、背景介绍 随着科技的迅速发展和信息化建设的不断推进,IT运维在中小企业中的地位逐渐提升。IT运维是指通过技术手段和工具,对企业的IT基础设施进行监控、管理和维护,以确保企业信息系统的稳定运行和业务的持续发展。 然而,对于…

计算3个点的6种分布在平面上的占比

假设平面的尺寸是6*6,用11的方式构造2,在用21的方式构造3 2 2 2 1 2 2 2 2 2 1 2 2 2 2 2 1 2 2 3 3 3 x 3 3 2 2 2 1 2 2 2 2 2 1 2 2 在平面上有一个点x,11的操作吧平面分成了3部分2a1,2a…

海康Visionmaster-模块索引:MFC 模块索引异常解决 办法

现象:文件编码格式为 UTF-8 不带签名编码格式,模块索引会出现 模块无法找到异常 更改文件类型为 UTF-8 带签名格式或 vs 默认 GBK2312 编码格式

JMeter处理接口签名sign

写接口脚本的时候,很多接口涉及到签名,今天介绍下用JMeter编写签名脚本的方法。 举个例子,开启红包接口,请求方式为post POST /v1/api/red/open json请求参数 { "red_id":1, "timestamp":"1667033841…

2023年中国边缘计算网关现状及发展趋势分析[图]

边缘计算网关是一种可以在设备上运行本地计算、消息通信、数据缓存等功能的工业智能网关,可以在无需联网的情况下实现设备的本地联动以及数据处理分析。边缘计算网关是一种连接物联网设备和云端服务的关键技术,它可以在设备和云端之间建立一个安全、高效…

实例讲解Simulink的MATLAB Function模块

内容 MATLAB Function是一个支持使用M语言编写模块功能,并能够将所编写的M语言生成C代码,用于开发桌面应用和嵌入式应用的模块。它支持的 MATLAB内建函数比 Fcn模块要广泛,除去基本的四则运算、逻辑操作符和关系操作符,还可以调用MATLAB各种…

代码随想录算法训练营第四十三天【动态规划part05】 | 1049. 最后一块石头的重量 II、494. 目标和、474.一和零

1049. 最后一块石头的重量 II 题目链接: 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 求解思路: 等于把石头尽量分成重量相同的两堆 动规五部曲 确定dp数组及其下标含义:容量为j的背包,最多能装…

logstash安装和使用

官网:https://www.elastic.co/cn/logstash/ 1.上传Linux安装包 2.解压安装包且重命名 [rootVM-4-10-centos logstash]# tar -zxvf logstash-8.11.1-linux-x86_64.tar.gz -C ../software/[rootVM-4-10-centos logstash]# mv logstash-8.11.1/ logstash3.启动测试 …

国产遥感影像处理软件 GSRS,真是很方便

兼容国内外绝大多数卫星遥感影像格式;高效的影像查看,比如漫游、放大、缩小、查看影像像素灰度值、影像地理坐标、影像投影坐标系等等;人机交互影像裁剪,任何绘制裁剪区域,输出裁剪影像;具备影像基本处理功…