日期:2014-05-16  浏览次数:20270 次

面向 Java 开发人员的 JavaScript【来源于网络】

当时和现在:为何 JavaScript 很重要

Netscape 于 1995 年引入了 JavaScript,它很快就流行起来了。最主要的原因是 Web 作为商业媒体平台的出现:使用 JavaScript,您(依然)可以通过编程来影响浏览器中 Web 页面的特性。那这是个很棒的工具!HTML 表单验证与受限图片欺骗(limited image trickery)是主题。

自那时起 JavaScript 就具有多个化身。Netscape 曾一度拥有一个产品,Netscape Application Server,它正是基于服务器端 JavaScript 来构建的 Web 应用程序。多年以后,由于 Ajax 和 Prototype、JQuery、和 Extjs 之类部件库的引入,重新引起了人们对 JavaScript 的兴趣。最近,服务器端 JavaScript 被用于 Node.js 当中,这是利用 Google's V8 JavaScript 引擎构建服务器端 Web 应用程序的基于事件的 I/O 框架。

Netscape 做了一件很有前瞻性的事,就是把 JavaScript 提交到 Ecma International 来进行标准化。这就是人们称 JavaScript 为 ECMAScript 的原因。更重要的是,这也是众多 Web 浏览器支持 ECMAScript 的原因。因此,Web 应用程序大都会采用 JavaScript,这一点没有改变过。目前还没有能与之相比的其他浏览器兼容脚本语言。

Node.js

Node.js(见 参考资料Resources)是服务器端、高并发、基于事件的框架。在处理大量有关并发编程的问题时,Node.js 程序比具有线程的程序效率更高。Node.js 相对比较新,围绕该技术的创新令人期待。了解 JavaScript 是使用 Node.js 相关工具的关键。

当前,尽管 JavaScript 的名声不好,它仍然是应用最广(最有用)的语言之一。如果您是位 Java 程序员(或者 Ruby、Python、或 PHP 程序员),那么您可能曾用过 JavaScript ,或者在不久的将来会使用 JavaScript。了解 JavaScript 的一些特性,有助于构建优秀的 Web 应用程序。此外,这有助于使用 Node.js,甚至还能增强您对 GWT 内部技术的了解。

在下一小节中,我将关注 JavaScript 语法的主要元素,重点介绍一些细节内容,这将有助于 Java 开发人员的提高。然而,我首先想打破一个关于 JavaScript 的神话:就是您需要一个 Web 页面来与其交互。

?

在 Chrome 中使用 JavaScript

在过去,JavaScript 需要浏览器,并间接地需要一个 Web 页面来执行。这对于一些开发人员来说是个麻烦,甚至是个障碍。幸运的是浏览器已经发展了;今天不论 Firefox 还是 Chrome 都提供了用于执行 JavaScript 的 IDE。

我喜欢 Chrome 漂亮的 JavaScript 控制台。就像 Ruby's IRB 或者 Python's shell,Chrome 提供不需要 Web 页面的用于浏览 JavaScript 的交互式环境。

CoffeeScript

如果您喜欢 JavaScript 的功能,但不喜欢它的语法,那么您可以尝试一下 CoffeeScript。CoffeeScript 是 “编译成 JavaScript 的小型语言” — 也就是说,CoffeeScript 通过简化 JavaScript 的一些语法,使 JavaScript 编程更加方便。CoffeeScript 更像 Ruby 或者 Python,但能提供 JavaScript 的效果。见 参考资料 中 CoffeeScript 的相关内容。

想要了解 Chrome's JavaScript 控制台,需要 下载用于您 OS 中的 Chrome。然后,打开一个新的空白标签(也就是说,不要指向 Web 页面)并选择 View > Developer > JavaScript Console。在 Chrome 窗口的底部,会弹出 JavaScript 开发人员控制台。可通过选择控制台左下角的 Undock 图标来使其成为独立对话框。然后可选择右上角的 Console 图标,来打开用于和 JavaScript 交互的空白窗口,如图 1 所示:


图 1. 在 Google Chrome 中与 JavaScript 交互

.
现在来看一些语法。


JavaScript 变量

JavaScript 是一个比较容易使用的语言,它能容忍很多编程错误,并仍然能在加载的 Web 页中执行。JavaScript 元素经常没有任何提示就失败了,这大部分都是好消息。如果 JavaScript 语言草率地禁止页面加载,那么早期的 Web 将是一片混乱。也就是说,当我们利用 JavaScript 来做我们喜欢做的事时(比如异步更新页面状态),草率使用 JavaScript 将付出代价。由于这个原因,Java 开发人员应该花时间真正了解 JavaScript 语法的特定方面。

JavaScript 变量的处理对理解来说很重要。例如,您想定义一个变量 foo,可以直接定义或者通过 var 声明,如清单 1 所示:


清单 1. 变量 foo

				
foo = 'foo'
var bar = 'bar'

清单 1 中的 foo 是 JavaScript 中的有效变量。但它缺少 var 声明,这是个全局变量。因此利用 var 定义的变量是有范围的(例如,在定义它的函数中)。

通常,全局变量比较麻烦。它们很容易造成变量使用的混乱,因为全局变量可在 JavaScript