JavaScript深度剖析:从入门到精通

发表时间: 2019-01-22 16:26

JavaScript语言的前身叫作Livescript。自从Sun公司推出Java语言之后,Netscape公司引进了Sun公司有关Java的程序概念,将自己原有的Livescript 重新进行设计,并改名为JavaScript。

JavaScript是一种脚本语言,使用JavaScript,可使网页变得生动。使用它的目的是与HTML超文本标识语言、Java 脚本语言一起实现在一个网页中链接多个对象,与网络客户交互作用,从而可以开发客户端的应用程序。它是通过嵌入或调入在标准的HTML语言中实现的。

JavaScript具有很多优点:

1.简单性 JavaScript是一种脚本编写语言,是一种解释性语言。它的基本结构形式与C或者Java很类似,但不像这些语言需要先编译,而是在程序运行过程中被浏览器逐行地解释。

2.动态性 JavaScript是动态语言,可以在运行时动态改变已有的数据和行为,可以添加或者删除已有的方法。

3.跨平台性 JavaScript是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持JavaScript的浏览器就可以执行。

4.强大的本地交互性,将许多计算操作,扩展到本地进行,增加用户的交互性,降低网络通信数据流量。例如,Web2.0和Ajax等技术。

5.开放与进化,目前有许多基于JavaScript的第三方扩展库、扩展框架,大大降低了开发Web2.0的技术门槛,提升开发效率,例如:JQuery,AngularJS等。

版本

Javascript的第一个正式版本,即Javascript 1.0是由Netscape公司和SUN公司联合开发,在Netscape Navigator 2.0中搭载发布(1995年)。Javascript 1.0基于ScriptEase技术开发,最初命名为LiveScript,在正式发布前更名为Javascript,目的是为了借用Java所建立的影响。Javascript 1.0取得了较大的成功。

Javascript 1.1在Netscape Navigator 3.0中发布(1996年)。非常重要的“构造器-原型继承”概念是在JavaScript 1.1版本中提出

Javascript 1.3搭载在随后发布的Netscape Navigator 4.06中,是Netscape第一个真正符合ECMA-262规范第一版的脚本语言实现,微软公司发布的IE4.0

中搭载的JScript3.0也符合此规范。

JavaScript与ECMAScript 1999年,欧洲计算机制造协会(ECMA)在JavaScript1.5版本基础上指定了“ECMAScript程序语言规范书”(ECMA-262标准),该标准被国际标准化组织(ISO)采纳,作为各浏览器使用的脚本程序的统一标准。在ECMAScript标准公布后,NetScape和Microsoft公司都许诺,此后开发的新功能将遵循该标准。

发展 JavaScript原本是Netscape开发的用于增强HTML网页动态功能的脚本语言。到了2005年,随着AJAX的兴起,Google对JavaScript的发展起到了重要的作用。

几个标志性网络服务 Gmail, Google Maps, Google Group,甚至 Google 搜索建议,都采用了 AJAX 实现。用户端无需安装任何插件,便拥有交互效果,其应用日益广泛。尽管其它脚本语言(VBScript, Perl等)能实现相同功能,JavaScript 是唯一一个跨平台跨设备浏览器都支持的语言。

作为脚本语言,没有事先编译,性能完全靠浏览器里的JavaScript引擎。Google在芬兰组建团队,使用两年开发出JavaScript V8引擎,内置入 Chrome 浏览器。Chrome 浏览器于 08 年发布,其JavaScript的速度分数数倍、数十倍于当时市场上其它浏览器。

后来其它浏览器不断改进,苹果发布 Safari Nitro 引擎,Mozilla 更新了各种Monkey JavaScript 引擎,IE 发布了 Chakan 引擎。基于JavaScript的网络应用逐渐成熟。Node.js应用V8引擎开发的后台Web服务器,借助于JavaScript强大的函数式和异步编程能力,性能表现十分优秀。

JavaScript语言和Java语言是相关的,但它们之间的联系并不像想象中的那样紧密。

二者的区别体现在:

首先,它们是两个公司开发的不同的两个产品,Java是SUN公司推出的新一代面向对象的程序设计语言,特别适合于Internet应用程序开发;而JavaScript是Netscape公司的产品,其目的是为了扩展Netscape Navigator功能,而开发的一种可以嵌入Web页面中的基于对象和事件驱动的解释性语言

其次,JavaScript是基于对象的,而Java是面向对象的,即Java是一种真正的面向对象的语言,即使是开发简单的程序,必须设计对象。JavaScript是种脚本语言,它可以用来制作与网络无关的,与用户交互作用的复杂软件。它是一种基于对象和事件驱动的编程语言。因而它本身提供了非常丰富的内部对象供设计人员使用。

第三,两种语言在其浏览器中所执行的方式不一样。Java的源代码在传递到客户端执行之前,必须经过编译,因而客户端上必须具有相应平台上的仿真器或解释器,它可以通过编译器或解释器实现独立于某个特定的平台编译代码的束缚。JavaScript是一种解释性编程语言,其源代码在发往客户端执行之前不需经过编译,而是将文本格式的字符代码发送给客户,由浏览器解释执行。

第四,两种语言所采取的变量是不一样的。Java采用强类型变量检查,即所有变量在编译之前必须作声明。JavaScript中变量声明,采用其弱类型。即变量在使用前不需作声明,而是解释器在运行时检查其数据类型。

第五,代码格式不一样。Java是一种与HTML无关的格式,必须通过像HTML中引用外媒体那么进行装载,其代码以字节代码的形式保存在独立的文档中。JavaScript的代码是一种文本字符格式,可以直接嵌入HTML文档中,并且可动态装载。编写HTML文档就像编辑文本文件一样方便。

第六,嵌入方式不一样。在HTML文档中,两种编程语言的标识不同,JavaScript使用 <script>...</script> 来标识,而Java使用<applet> ... </applet>来标识。

第七,静态绑定和动态绑定。Java采用静态联编,即Java的对象引用必须在编译时的进行,以使编译器能够实现强类型检查。JavaScript采用动态联编,即JavaScript的对象引用在运行时进行检查,如不经编译则就无法实现对象引用的检查。 在目前流行的浏览器中,Netscape公司的Navigator 2.0以上版本的浏览器具都有处理JavaScript源代码的能力。JavaScript在其中实现了它的1.0版本,并在后来的Navigator 3.0实现了它的1.1版本,在现在推出的Navigator 4.0(Communicator)中,JavaScript在其中实现了它的1.2版本

微软公司从它的Internet Explorer 3.0版开始支持JavaScript。Microsoft把自己实现的JavaScript规范叫做JScript。这个规范与Netscape Navigator浏览器中的JavaScript规范在基本功能上和语法上是一致的,但是在个别的对象实现方面还有一定的差别,这里特别需要予以注意。