初涉JavaScript的时候,经常会听到ECMAScript, NodeJS,Webkit,V8,PhantomJS什么的,到底这些都是些什么东西,有什么差别呢,在开发中,他们各自的角色又是什么?
ECMAScript
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会)通过ECMA-262标准化的脚本程序设计语言。凡是兼容ECMA标准的脚本语言就可以称之为ECMAScript,而JavaScript就是其中之一,另外还有微软的JScript等等。其诞生是多个大厂博弈的结果,网景公司在浏览器中引入JavaScript之后,微软等各大公司为了技术优势,都开发了自己的客户端脚本语言,最后为了统一规格,由欧洲计算机制造商协会出面协调,Netscape、Sun、微软、Borland组成的工作组确定了统一标准ECMAScript。
目前主流浏览器都支持了ECMAScript 5.1标准,而ECMAScript 6正在拟定中....,经过2次跳票之后,预计2015年6月发布。
尽管ECMAScript 是一个重要的标准,但它并不是JavaScript 唯一的部分,当然,也不是唯一被标准化的部分。根据ECMA-262的描述“ECMAScript可以为不同种类的宿主环境提供核心的脚本编程能力,因此核心的脚本语言是与任何特定的宿主环境分开进行规定的... .. ”因此,简单地说,ECMAScript 描述了以下内容: 语法 类型 语句 关键字 保留字 运算符 对象
JavaScript
前面提到JavaScript是ECMAScript标准的一个实现,但是除了ECMAScript定义的功能外,其还扩展了一些其它功能。因为JavaScript从诞生之初的目的就是生存于浏览器中,为HTML网页提供动态功能,直到NodeJS创造性的把其运用到了服务器端(这部分后面再聊)。所以一个完整的浏览器端的JavaScript实现是由3个不同部分组成的:
JavaScript是一种解释性脚本语言(代码不进行预编译),直接通过解释器运行,这个解释器是浏览器的一部分,我们称之为JavaScript引擎。
JavaScript引擎
JavaScript引擎是一个专门处理JavaScript脚本的软件程序,也有称之为JavaScript虚拟机的。一般会附带在网页浏览器中. 各个浏览器都有自己的引擎。具体可以到这篇文章中去查看:
http://jser.in/%E6%B1%87%E6%80%BB%E5%90%84%E6%B5%8F%E8%A7%88%E5%99%A8%E6%A0%B8%E5%BF%83js%E5%BC%95%E6%93%8E%E5%8F%8A%E6%8E%92%E7%89%88%E5%BC%95%E6%93%8E%E6%B7%B1%E7%A9%B6-295.shtml
因此,我们平时提到的V8就是Chrome浏览器使用的JavaScript引擎。因为其高性能,NodeJS也是基于该引擎实现,因此听到的概率高于其它引擎。
排版引擎(浏览器内核)
WebKit是一个排版引擎,主要设计是用来让网页浏览器绘制网页。WebKit目前作为Apple Safari及Google Chrome(直到版本27,后续的版本已切换到自家的Blink)等浏览器的主要引擎。浏览器的排版引擎(Layout Engine或Rendering Engine)也被称为浏览器内核、页面渲染引擎或样版引擎,它负责获取网页的内容(HTML、XML、图像等等)、整理消息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。所有网页浏览器、电子邮件客户端以及其它需要根据表示性的标记语言(Presentational markup)来显示内容的应用程序都需要排版引擎。即其负责了整个浏览器的工作。有兴趣的可以看一下这篇文章《开发者需要了解的WebKit》:
http://www.infoq.com/cn/articles/webkit-for-developers, 如果有时间,再看看浏览器是如何工作的就更有收获了:
http://www.html5rocks.com/zh/tutorials/internals/howbrowserswork/,和
http://coolshell.cn/articles/9666.html
而PhantomJS是一个无界面的WebKit,这样程序员就可以在命令行中模拟所有浏览器操作了,尤其是在做自动化测试时,无界面的WebKit运行速度会快很多,但是注意,因为其是基于WebKit的,所以并不能保证所有的浏览器下的行为都和测试的一致。
参考文献:
http://zh.wikipedia.org/wiki/ECMAScript http://zh.wikipedia.org/wiki/JavaScript http://blog.sina.com.cn/s/blog_636415010100z3ws.html
http://blog.csdn.net/teamossp/article/details/12715315
http://zh.wikipedia.org/wiki/JavaScript%E5%BC%95%E6%93%8E
分享到:
相关推荐
本书是一本全面、深入介绍JavaScript语言的学习指南。本书共分四个部分,第1部分帮助读者快速入手,掌握基本的JavaScript编程要点;第2部分介绍JavaScript的发展和技术背景;第3部分深入探索JavaScript,介绍了语法...
本资源包包含了多个关于JavaScript的重要参考资料,包括“JavaScript权威指南(英文版).chm”、“javascript5.5.chm”、“css2gb.chm”以及“JavaScript对象与数组参考大全 .chm”。 首先,我们来看“JavaScript权威...
JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)JavaScript基础语法(ppt)...
在这个场景中,我们关注的是VS2015的安装过程中涉及到的证书问题以及两个特定的组件:JavaScript_ProjectSystem.msi和JavaScript_LanguageService.msi。 首先,关于“VS2015安装证书”,这通常是指安装过程中需要...
JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)...
JavaScript,一种广泛应用于Web开发的脚本语言,是前端开发的核心技术之一。这份"JavaScript学习指南"高清PDF,无疑为想要深入理解JavaScript的初学者或有一定基础的开发者提供了宝贵的资源。下面,我们将深入探讨...
这个项目对于那些需要在服务器端或者桌面应用中利用JavaScript的强大功能,而又不希望引入完整的浏览器环境(如ChakraCore或JScript.NET)的开发者来说,是一个非常实用的工具。 JavaScript.Net的核心功能在于提供...
JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案JavaScript课堂习题答案...
JavaScript API 是一种重要的编程资源,它为开发者提供了与JavaScript语言交互的接口和工具。这个离线版的JavaScript API 指南,以CHM(Compiled Help Manual)格式提供,是开发者学习和查阅JavaScript相关功能和...
JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象(源代码)JavaScript之Math对象...
《JavaScript权威指南(第6版)》主要讲述的内容涵盖JavaScript语言本身,以及Web浏览器所实现的JavaScript API。本书第6版涵盖了HTML5和ECMAScript 5,很多章节完全重写,增加了当今Web开发的最佳实践的内容,新增...
JavaScript是一种广泛应用于网页和网络应用的编程语言,尤其在客户端脚本方面扮演着核心角色。这份"javascript试题(附答案)"是为初学者设计的,旨在帮助他们更好地理解和掌握JavaScript的基础知识。 一、变量与数据...
现代JavaScript教程是一个全面的学习资源,旨在帮助开发者深入理解JavaScript这一重要的编程语言。JavaScript,作为Web开发的核心技术之一,被广泛用于构建交互式的网页和应用程序。本教程覆盖了从基础概念到高级...
Eloquent JavaScript 3rd, Eloquent JavaScript 3rd Eloquent_JavaScript_3rd
深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 深入理解JavaScript系列(2):揭秘命名函数表达式 深入理解JavaScript系列(3):全面解析Module模式 深入理解JavaScript系列(4):立即调用...
中文名: JavaScript权威指南 (第6版) 原名: JavaScript: The Definitive Guide: Activate Your Web Pages, 6th edition 作者: David Flanagan 版本: 英文文字版-pdf/EPUB + 完整书中源代码 出版社: O'Reilly 书号: ...
《深入解析org.mozilla.javascript-1.7.2.jar》 在Java开发中,JavaScript引擎的使用日益广泛,其中Mozilla的Rhino引擎是备受开发者青睐的一款。本文将围绕"org.mozilla.javascript-1.7.2.jar"这个资源包,详细讲解...
JavaScript是一种广泛用于网页开发的脚本语言,它是实现Web前端交互功能的核心技术之一。在给定的文件内容中,我们可以提取到关于JavaScript的多个知识点: 1. JavaScript的变量类型:JavaScript中主要有几种基本的...
《JavaScript征途》是一本学习JavaScript语言的权威书籍,在遵循语言学习的特殊规律基础上精心选材,力争做到统筹、有序,在结构上体现系统性和完整性。同时还重点挖掘JavaScript基于对象的开发精髓及函数式编程两个...