全面了解JavaScript语言

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/weixin_44198965/article/details/90047229

起源

JavaScript是由web发展初期的网景(Netscape)公司创建,是Oracle的注册商标,用来特指网景公司对这门语言的实现,网景公司将这门语言作为标准提交给了ECMA-欧洲计算机制造协会,还是由于注册商标上的冲突,将这门语言的标准版修改了新名字:ECMAScript,依然由于注册商标冲突,后被微软取了一个广为人知的名字Jscript,最后,所有人都把这门语言称之为JavaScript。

ECMAscript 和ECMA International

在十几年前,所有web浏览器基本实现了第三版的ECMAscript标准,并且被几乎所有浏览器完整地实现。ECMA International是一家国际性会员制度的信息和电信标准组织,它和企业密切相连的组织,所以 Ecma国际制定的规范标准都是由各类企业来做主要的制定和推广。那时,ECMAscript第五版已经定义了新的标准,并且浏览器已经开始实现,目前已经是第六版ECMAscript(ES6)。再有,1997年该组织发布了MCMA-262的标准,该标准制定了MCMAscript语言规范,侧面稳固奠定了ECMAscript。

ECMA-262(用于创建通用目的脚本语言)

在这里插入图片描述
ECMA-262 是一个类似 QWERTY 的标准,但不同于呈现一个键盘层的规范,该标准定义了ECMAscript语言规范,这个这个标准也叫成为ECMAscript语言规范(ECMAScript Language Specification),简称ES规范。

JavaScript发展历程

1995年前后:
JavaScript有三个主流版本:
Netscape Navigator 3.0 中的 JavaScript
IE 中的 JScript
CEnvi 中的ScriptEase。
缺点非常的明显,JavaScript不像其他语言,有一个标准,但是JavaScript 并没有一个标准来统一其语法或特性,随着业界担心的增加,这个语言的标准化显然已经势在必行。

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异常处理,更严格的错误定义,数字输出的格式化以及预期未来语言增长的微小变化。第三版在当时应用非常广泛,几乎所有的浏览器都支持ECMAscript 3(ES3)的标准,发生了巨大的变化。
不幸的是,ECMA-262第4版本(ES4)夭折,部分功能被迁移到ES6中。

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

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

ECMAScript 6(ES6)

2015年前后:
ECMA-262第六版(ES6或者叫ES 2015语言规范),ES6可以说从2000年,ES3发布之后就开始沉淀,由于ES4的夭折,ES4中的一些功能特性一直等到ES6才发布,ES6版本再一次发生了巨大的突破。
ES6功能:
ES6为大型应用程序提供更好的支持,创建Lib库,以及使用ecmascript作为其他语言的编译目标。ES6主要新增了如下功能:主要增强包括模块,类声明,词法块范围,迭代器和生成器,异步编程的承诺,解构模式和适当的尾部调用。
内置的ecmascript库被扩展为支持额外的数据抽象,包括映射,集合和二进制数值数组等等。

ECMAscript与JavaScript共同遵守MCMA-262标准

ECMAscript:
根据MCMA-262标准,实现的通用脚本语言规范。
JavaScript:
通用的跨平台脚本语言,他遵守ECMA262的标准,换句话说就是ECMAscript的方言,其他的还有微软的jscript等。

一句话阐述二者关系:

ECMAScript是JavaScript的规格,JavaScript是ECMAScript的一种实现!

JavaScript解释器(引擎engine)

它的作用是解析代码并运行,常见的JavaScript引擎有如下三种:
(1)chrome V8
(2)firefox SpiderMonkey
(3)edge chakra
引擎也有版本号,如Google V8引擎版本是3.0。
像服务端的Node.js,就是基于Google V8引擎实现的。
扩展:
JavaScript是一门解释型语言,解释型语言的源代码不是直接翻译成机器指令,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。

解释器(引擎)所造成的浏览器兼容性

多种不同的JavaScript引擎处理同一份相同的JavaScript代码会存在一些差异,这种差异是处理引擎造成的,有的浏览器支持,有的浏览器不支持,这就造成我们所说的兼容性的问题。

总结JavaScript语言

JavaScript是一门高端的、动态的、弱类型的编程语言,非常适合面向对象和函数式的编程风格,JavaScript的语法源自Java,它的一等函数(first-class function)来自于Scheme,它的基于原型(prototype-based)的继承来自于Self,目前的JavaScript早已超出其“脚本语言(scripting-language)”本身的范畴,而成为了一种集健壮性、高效性、通用性为一身的编程语言。
ECMAScript是JavaScript的规格,JavaScript是ECMAScript的一种实现!

猜你喜欢

转载自blog.csdn.net/weixin_44198965/article/details/90047229