ECMAScript6历史-前端开发+ECMAScript+基础语法+入门教程

ECMAScript6详解

ECMAScript 历史

我们首先来看 ECMA 是什么。ECMA,读音类似“埃科妈”,是欧洲计算机制造商协会(European Computer Manufacturers Association)的简称,是一家国际性会员制度的信息和电信标准组织。1994年之后,由于组织的标准牵涉到很多其他国家,为了体现其国际性,更名为 Ecma 国际(Ecma International),因此Ecma 就不再是首字母缩略字了。

1995 年,著名的网景公司(Netscape)的 Brendan Eich 开发了一种脚本语言,最初命名为 Mocha,后来改名为LiveScript,最后为了蹭当时火热的 Java 热度重命名为了 JavaScript。

了解了 Ecma 国际和 JavaScript,就方便了解 ECMAScript 了,ECMAScript 是一种由 Ecma 国际在标准ECMA-262 中定义的 脚本语言 规范。这种语言在往往被称为 JavaScript 或 JScript ,但实际上 JavaScript和 JScript 是 ECMA-262 标准的实现和扩展。

神秘的 ECMA-262

上文提到了第一个神秘代码 ECMA-262,ECMA-262 到底是什么呢?原来 Ecma 国际的标准,都会以Ecma-Number 命名,ECMA-262 就是 ECMA 262 号标准,具体就是指 ECMAScript遵照的标准。1996 年 11 月,网景公司将 JavaScript 提交给 Ecma 国际进行标准化。ECMA-262 的第一个版本于 1997 年 6 月被 Ecma 国际采纳。

尽管 JavaScript 和 JScript 与 ECMAScript 兼容,但包含超出 ECMAScript 的功能。

我们如何查看最新最全的 Ecma 标准呢,可以查看 Ecma 国际官网的 Standards。截止到 2021 年 4 月,最新的 Ecma 标准已经到了 ECMA-423。

在这里插入图片描述

在这里插入图片描述

1.ECMAScript6 简介

ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。

它的目标,是使 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。

ES6 引入了许多新的语法特性和 API,例如:

  • 类(class)和继承(inheritance)
  • 模块(module)和导入(import)
  • 箭头函数(arrow function)和默认参数(default parameter)
  • 解构赋值(destructuring assignment)和展开运算符(spread operator)
  • Promise 和异步函数(async function)
  • 生成器(generator)和迭代器(iterator)
  • 代理(proxy)和反射(reflect)
  • 新的数据类型和数据结构,如 Symbol、Set、Map、WeakSet、WeakMap 等

1.1 ECMAScript 和 JavaScript 的关系

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

1.2 ES6 与 ECMAScript 2015 的关系

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

  • ES6 既是一个历史名词,也是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了ES2015、ES2016、ES2017 等等

结语

授人以鱼,不如授人以渔,希望通过本文追根溯源,带领同学们走进 ECMAScript 的世界,ES 神秘代码不再神秘,ES 新特性不再彷徨。

每个版本最新的特性请参考 版本新特性

ECMA官网请参考 ECMA-GitHub官网

语法学习请参考 ECMA中文教程

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

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

相关文章

linux 网络驱动之net_device 结构介绍

net_device 结构处于网络驱动层的非常核心的位置并且值得完全的描述. 这个列表描述 了所有成员, 更多的是提供了一个参考而不是用来备忘. 本章剩下的部分简要地描述了每 个成员, 一旦它用在例子代码上, 因此你不需要不停地回看这一节. 全局信息 结构 net_device 的第一部分是…

AcWing 203. 同余方程(扩展欧几里得算法)

题目链接 203. 同余方程 - AcWing题库高质量的算法题库https://www.acwing.com/problem/content/205/ 来源 《算法竞赛进阶指南》, NOIP2012提高组 题解 本题中的同余方程可以转化为ax by 1的形式,利用扩展欧几里得算法可以求得特解为,则通解为。 代…

网站建设网络设计营销类网站模板

★安装环境要求★ 服务器:Linux / Apache / IIS PHP版本:5.4及5.4以上,完美支持php7.4 MYSQL版本:5.0以上 PS:php版本推荐5.6,mysql推荐使用5.7 ★模板安装步骤★ 1、请将源码包里面的所有文件和文件夹上…

【每日一题】删除子串后的字符串最小长度

文章目录 Tag题目来源解题思路方法一:栈 写在最后 Tag 【栈】【字符串】【2024-01-10】 题目来源 2696. 删除子串后的字符串最小长度 解题思路 方法一:栈 思路 按照题目要求需要移除字符串中的 “AB” 和 “CD” 子字符串,并且移除这两种…

Clean Code读后总结——前进者的基石

前言 作为一个程序员,再职业生涯中会写很多很多万行代码。感觉学习写代码的过程很像学习写作的过程,写大型软件就是在写一本长篇小说,那么如何定义好的代码,感觉就像是问说怎么写出好的文章。 那么什么是好的代码呢?对…

Helix QAC 2023.4 新版支持C++20语言,带来更多性能提升!

Helix QAC 2023.4 新增功能 Helix QAC 2023.4全面支持MISRA C:2023规则,涵盖100%的指南。此版本还加强了对C20语言的支持,改进了数据流分析性能,并在整个产品中增加了多项用户体验改进。 增强的C20支持 此版本新增了对以下语言特性的支持&a…

代码随想录算法训练营Day28|93.复原IP地址、78.子集、90.子集II

93.复原IP地址 题目链接&#xff1a;93.复原IP地址 文档链接&#xff1a;93.复原IP地址 视频链接&#xff1a;回溯算法如何分割字符串并判断是合法IP&#xff1f;| LeetCode&#xff1a;93.复原IP地址 C实现 class Solution { private:vector<string> result;bool isVal…

vscode设置python脚本运行参数

1 添加配置文件 点击到你要配置的python文件&#xff0c;然后右上角点击 运行 &#xff0c;再点击 添加配置 再点击 “Pyhton文件” 选项&#xff08;其实就是在选择 当前的python文件 进行配置&#xff09; 接着就生成了配置文件 lanunch.json 2 参数配置 再上面代码的基础上…

c++语言基础20-排队取奶茶(堆)

题目描述 假设有一家奶茶店&#xff0c;现在有一些人在排队等待取奶茶&#xff0c;同时也有人在取奶茶。 请你设计一个程序模拟这种情况下的奶茶队列管理。假设每个人取奶茶的时间非常短&#xff0c;可以忽略不计&#xff0c;只需要考虑队列中的操作。 队列操作说明&#xff1…

Guava:Cache强大的本地缓存框架

Guava Cache是一款非常优秀的本地缓存框架。 一、 经典配置 Guava Cache 的数据结构跟 JDK1.7 的 ConcurrentHashMap 类似&#xff0c;提供了基于时间、容量、引用三种回收策略&#xff0c;以及自动加载、访问统计等功能。 基本的配置 Testpublic void testLoadingCache() th…

6 - 数据备份与恢复|innobackupex

数据备份与恢复&#xff5c;innobackupex 数据备份与恢复数据备份相关概念物理备份与恢复逻辑备份&#xff08;推荐&#xff09;使用binlog日志文件实现对数据的时时备份‘使用日志 恢复数据 innobackupex 对数据做备份和恢复增量备份与恢复 数据备份与恢复 数据备份相关概念 …

EPICS scanparm记录和相关软件

概要 本文档描述EPICS scanparm记录&#xff0c;以及构建和使用它所需的相关EPICS软件。此版本的记录兼容EPICS 3.14.8.2&#xff0c;而不兼容任何EPICS 3.13.x版本。 scanparm记录存储了为了将它们写入到EPICS sscan记录的参数&#xff0c;并且项EPICS终端用户提供了一种装载…

Tomcat服务实例部署

目录 **Tomcat 由一系列的组件构成&#xff0c;其中核心的组件有三个&#xff1a;** 什么是 servlet&#xff1f; 什么是 JSP? Tomcat 功能组件结构&#xff1a; Container 结构分析&#xff1a; Tomcat 请求过程&#xff1a; ## Tomcat 服务部署 1.关闭防火墙&#xf…

golang学习-流程控制

if else 建议条件不用()包裹&#xff0c;if{}不能省略&#xff0c;{}中的{必须紧靠着条件 go语言中没有while循环&#xff0c;可以通过for 代替 age : 30if age > 18 {fmt.Println("我是大人")}//另一种写法if age : 99; age > 18 {fmt.Printf("年龄是%v&…

一、数据结构

一、 数组 1.1 数组 定义 遍历 // 遍历数组 传递指针 func traverse() {var b [...]int{1, 2, 3} //长度为3 元素为 1 2 3var ptr &b //ptr是指向数组的指针fmt.Println(b[0], b[1]) // 打印数组的前 2 个元素fmt.Println(ptr[0], ptr[1]) // 通…

UDS统一诊断服务读取DTC信息0X19服务

概念 UDS(Unified Diagnostic Services)统一诊断服务中的0x19服务是用于读取诊断故障代码(DTC,Diagnostic Trouble Code)信息的服务。DTC是车辆故障诊断系统中的重要部分,当车辆发生故障时,相应的DTC会被存储在ECU(电子控制单元)的故障代码存储器中。 0x19服务包含了…

CMake入门教程【核心篇】导出项目库

概述 CMake是一个跨平台的自动化构建系统,它使用配置文件(CMakeLists.txt)来管理软件构建过程。如何使用CMake导出静态库(.a)和动态库(.so/.dll)。 #mermaid-svg-cnd9qfr6rFQgQRNR {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fil…

解读MyabtisPlus中的R类(通用响应包装类)

目录 前言1. 概念2. 源码解读3. Demo 前言 大部分R类可以自已手写一个适配的&#xff0c;但MybatisPlus中有专门的R类&#xff0c;于是就使用封装好的类即可 1. 概念 通用R类是一种用于处理API响应的通用响应包装类。 概念含义作用示例用途1.R类是一个泛型类&#xff0c;可…

C/C++汇编学习(六)——数据结构汇编实例:链表、树、图。

我们继续开展 目录 一、链表 1. C代码 2. 链表部分转为汇编并注释 二、树 1. C代码 2. 链表部分转为汇编并注释 3. 汇编伪代码 三、图 1. C代码 2. 汇编伪代码 四、总结 一、链表 1. C代码 #include <iostream>struct ListNode {int data;ListNode* next;…

vue 前端等比例压缩图片(再转换成文件后上传后端)

前端压缩图片总的来说还是转base64 然后等比例放小宽和高 这个是上次压缩图片的一个扩展 压缩完之后 再将base64 转成blob再转成文件然后再上传 一生要强的前端崽子&#xff08;后端不支持base64上传&#xff09; 自己改吧改吧 // 图片上传async changePic(e) {this.isshang…