首页 web前端 js教程 一起看看ECMAScript和JavaScript的区别

一起看看ECMAScript和JavaScript的区别

Jan 27, 2021 pm 05:50 PM
ecmascript js

一起看看ECMAScript和JavaScript的区别

免费学习推荐:js视频教程

1、ECMAScript的简介

ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,所以它可以理解为是JavaScript的一个标准,但实际上后两者是ECMA-262标准的实现和扩展。

1.1 ECMA International

ECMA International是一家国际性会员制度的信息和电信标准组织,它和企业密切相连的组织,所以 Ecma国际制定的规范标准都是由各类企业来做主要的制定和推广。1997年该组织发布了MCMA-262的标准,该标准制定了ECMAScript语言规范。ECMAScript就是从这里来的。

1.2 ECMA-262标准(ES标准)

ECMA-262是ECMA TC39小组制定的关于脚本语言的规范标准。TC39成员由来自一些对脚本编程感兴趣的公司的程序员组成的。

ECMA-262标准定义了ECMAScript语言规范。这个标准也叫成为ECMAScript语言规范(ECMAScript Language Specification),简称ES规范。

ES规范从1997发布到现在为止是第八个版本。ECMAScript是基于几种原始技术,最著名的是JavaScript(Netscape Navigator 2.0)和JScript(Microsoft IE3)。

1.3 JavaScript标准化的历程

1995年前后:互联网爆发,Web应用层出不穷,那时候只要有注册一个.com的域名,基本就能暴富,就如同现在的区块链和人工智能。就在那时候JavaScript有三个主流版本:

(1)Netscape Navigator 3.0 中的 JavaScript。

(2)IE 中的 JScript。

(3)CEnvi 中的ScriptEase。

与和其它编程语言不同的是,JavaScript 并没有一个标准来统一其语法或特性,而这 3 种不同的版本恰恰突出了这个问题。随着业界担心的增加,这个语言的标准化显然已经势在必行。

1997年:JavaScript 1.1 作为一个草案提交给欧洲计算机制造商协会(ECMA)。第 39 技术委员会(TC39)被委派来“标准化一个通用、跨平台、中立于厂商的脚本语言的语法和语义”。 锤炼出了 ECMA-262第一版,该标准定义了名为 ECMAScript 的全新脚本语言。

1998年:国际标准化组织及国际电工委员会(ISO/IEC)也采纳 ECMAScript 作为标准(ISO/IEC-16262)。同年发布了ECMA-262第二个版(ES2).第二个版本基本没有加新功能。

2002年:ECMA-262第三版(ES3),新增引入了强大的正则表达式,更好的字符串处理,新的控制语句,try / catch异常处理,更严格的错误定义,数字输出的格式化以及预期未来语言增长的微小变化。第三版在当时应用非常广泛,几乎所有的浏览器都支持ES3的标准。

ECMA-262第4版本(ES4)夭折,部分功能被迁移到ES6中。

2009年:ECMA-262第五版(ES5)发布。在ES3的基础上增加了很多功能:包括访问器属性,对象的反射创建和检查,属性的程序控制,附加的数组操作函数,对JSON对象编码格式的支持以及提供增强的错误检查和程序安全性的严格模式。

2011年:被批准为国际标准ISO/IEC 16262:2011。同年发布ES5.1版本(对ES5做一些升级优化)同时被MCMA-262和ISO/IEC批准。

2015年:ECMA-262第六版(ES6或者叫ES 2015语言规范),ES6可以说从2000年,ES3发布之后就开始沉淀,由于ES4的夭折,ES4中的一些功能特性一直等到ES6才发布,所以第六版的完全是十五年的努力的结果。

ES6为大型应用程序提供更好的支持,创建Lib库,以及使用ECMAScript作为其它语言的编译目标。ES6主要新增了如下功能:主要增强包括模块,类声明,词法块范围,迭代器和生成器,异步编程的承诺,解构模式和适当的尾部调用。内置的ECMAScript库被扩展为支持额外的数据抽象,包括映射,集合和二进制数值数组,以及对字符串和正则表达式的使用。

2、JavaScript的简介

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

JavaScript是通用的跨平台脚本语言,遵守ECMA-262标准(ES标准),换句话说就是ECMAScript的方言。为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。

JavasSript商标属于Oracle公司,因为Sun公司被Oracle收购。JavaScript早年被Sun公司注册,代表JavaScript这门语言。但是最早发明JavaScript是网景公司。在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。

2.1 JavaScript基本特点

JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。

(1)一种解释性脚本语言(代码不进行预编译)。

(2)主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。

(3)可以直接嵌入HTML页面,但写成单独的JS文件有利于结构和行为的分离。

(4)跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。

Javascript脚本语言同其它语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。Javascript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。

2.2 JavaScript组成部分

JavaScript由ECMAScript、DOM、BOM三部分组成,如下图。

JavaScript组成部分

(1)ECMAScript:描述了该语言的语法和基本对象。

(2)DOM:文档对象模型(DOM),描述处理网页内容的方法和接口。

(3)BOM:浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。

2.2.1 DOM 文档对象模型

文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口。在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象的标准模型就称为DOM。Document Object Model的历史可以追溯至1990年代后期微软与Netscape的“浏览器大战”,双方为了在JavaScript与JScript一决生死,于是大规模的赋予浏览器强大的功能。微软在网页技术上加入了不少专属事物,既有VBScript、ActiveX、以及微软自家的DHTML格式等,使不少网页使用非微软平台及浏览器无法正常显示。DOM即是当时蕴酿出来的杰作。

2.2.2 BOM 浏览器对象模型

BOM(Browser Object Model)即浏览器对象模型。BOM提供了独立于内容而与浏览器窗口进行交互的对象;由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象是window;BOM由一系列相关的对象构成,并且每个对象都提供了很多方法与属性;BOM缺乏标准,JavaScript语法的标准化组织是ECMA,DOM的标准化组织是W3C,BOM最初是Netscape浏览器标准的一部分。

浏览器窗口交互的一些对象,例如可以移动、调整浏览器大小的window对象,可以用于导航的location对象与history对象,可以获取浏览器、操作系统与用户屏幕信息的navigator与screen对象,可以使用document作为访问HTML文档的入口,管理框架的frames对象等。

2.3 JavaScript处理引擎

JavaScript处理引擎是能解析并且运行JavaScript代码的解释器。浏览器通常会有JavaScript引擎,JavaScript刚出来时就是运行在浏览器中,作为客户端语言使用。

常见的JavaScript引擎:

(1)Chrome V8

(2)Firefox SpiderMonkey

(3)Microsoft Edge Chakra

提一下Node.js是基于Chrome V8引擎。上文提到V8引擎是用来解析执行JS,并且V8是基于ECMAScript标准实现的。换个角度说,Node.js里头没有DOM和BOM的操作,只保留的JavaScript的语法核心(ES),并且增加了事件驱动的非阻塞 I/O 模型,使其轻量级和高效。Node.js作为服务运行在Windows、Linux、Mac,把JavaScript的角色从前台开发,转移到了后台开发。

还有当前有点过时的用于Flash编程的ActionScript也是ECMAScript的具体实现。

相关免费学习推荐:javascript学习教程

以上是一起看看ECMAScript和JavaScript的区别的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

推荐:优秀JS开源人脸检测识别项目 推荐:优秀JS开源人脸检测识别项目 Apr 03, 2024 am 11:55 AM

人脸检测识别技术已经是一个比较成熟且应用广泛的技术。而目前最为广泛的互联网应用语言非JS莫属,在Web前端实现人脸检测识别相比后端的人脸识别有优势也有弱势。优势包括减少网络交互、实时识别,大大缩短了用户等待时间,提高了用户体验;弱势是:受到模型大小限制,其中准确率也有限。如何在web端使用js实现人脸检测呢?为了实现Web端人脸识别,需要熟悉相关的编程语言和技术,如JavaScript、HTML、CSS、WebRTC等。同时还需要掌握相关的计算机视觉和人工智能技术。值得注意的是,由于Web端的计

如何使用JS和百度地图实现地图平移功能 如何使用JS和百度地图实现地图平移功能 Nov 21, 2023 am 10:00 AM

如何使用JS和百度地图实现地图平移功能百度地图是一款广泛使用的地图服务平台,在Web开发中经常用于展示地理信息、定位等功能。本文将介绍如何使用JS和百度地图API实现地图平移功能,并提供具体的代码示例。一、准备工作使用百度地图API前,首先需要在百度地图开放平台(http://lbsyun.baidu.com/)上申请一个开发者账号,并创建一个应用。创建完成

股票分析必备工具:学习PHP和JS绘制蜡烛图的步骤 股票分析必备工具:学习PHP和JS绘制蜡烛图的步骤 Dec 17, 2023 pm 06:55 PM

股票分析必备工具:学习PHP和JS绘制蜡烛图的步骤,需要具体代码示例随着互联网和科技的快速发展,股票交易已经成为许多投资者的重要途径之一。而股票分析是投资者决策的重要一环,其中蜡烛图被广泛应用于技术分析中。学习如何使用PHP和JS绘制蜡烛图将为投资者提供更多直观的信息,帮助他们更好地做出决策。蜡烛图是一种以蜡烛形状来展示股票价格的技术图表。它展示了股票价格的

如何使用PHP和JS创建股票蜡烛图 如何使用PHP和JS创建股票蜡烛图 Dec 17, 2023 am 08:08 AM

如何使用PHP和JS创建股票蜡烛图股票蜡烛图是股票市场中常见的一种技术分析图形,通过绘制股票的开盘价、收盘价、最高价和最低价等数据,帮助投资者更直观地了解股票的价格波动情况。本文将教你如何使用PHP和JS创建股票蜡烛图,并附上具体的代码示例。一、准备工作在开始之前,我们需要准备以下环境:1.一台运行PHP的服务器2.一个支持HTML5和Canvas的浏览器3

如何使用JS和百度地图实现地图点击事件处理功能 如何使用JS和百度地图实现地图点击事件处理功能 Nov 21, 2023 am 11:11 AM

如何使用JS和百度地图实现地图点击事件处理功能概述:在Web开发中,经常需要使用地图功能来展示地理位置和地理信息。而地图上的点击事件处理是地图功能中常用且重要的一部分。本文将介绍如何使用JS和百度地图API来实现地图的点击事件处理功能,并给出具体的代码示例。步骤:导入百度地图的API文件首先,要在HTML文件中导入百度地图API的文件,可以通过以下代码实现:

如何使用JS和百度地图实现地图热力图功能 如何使用JS和百度地图实现地图热力图功能 Nov 21, 2023 am 09:33 AM

如何使用JS和百度地图实现地图热力图功能简介:随着互联网和移动设备的迅速发展,地图成为了一种普遍的应用场景。而热力图作为一种可视化的展示方式,能够帮助我们更直观地了解数据的分布情况。本文将介绍如何使用JS和百度地图API来实现地图热力图的功能,并提供具体的代码示例。准备工作:在开始之前,你需要准备以下事项:一个百度开发者账号,并创建一个应用,获取到相应的AP

PHP与JS开发技巧:掌握绘制股票蜡烛图的方法 PHP与JS开发技巧:掌握绘制股票蜡烛图的方法 Dec 18, 2023 pm 03:39 PM

随着互联网金融的迅速发展,股票投资已经成为了越来越多人的选择。而在股票交易中,蜡烛图是一种常用的技术分析方法,它能够显示股票价格的变化趋势,帮助投资者做出更加精准的决策。本文将通过介绍PHP和JS的开发技巧,带领读者了解如何绘制股票蜡烛图,并提供具体的代码示例。一、了解股票蜡烛图在介绍如何绘制股票蜡烛图之前,我们首先需要了解一下什么是蜡烛图。蜡烛图是由日本人

js和vue的关系 js和vue的关系 Mar 11, 2024 pm 05:21 PM

js和vue的关系:1、JS作为Web开发基石;2、Vue.js作为前端框架的崛起;3、JS与Vue的互补关系;4、JS与Vue的实践应用。

See all articles