
原文出处
http://javascript.crockford.com/survey.html 综述
这篇文章为专业程序员介绍
JavaScript Programming Language 。它是一个微型语言,如果你熟悉其它语言的话,很容易理解。
JavaScript 并不是Java。它们是两种不同的语言。JavaScript 也不是 Java 的一个子集。更不是解释性的Java。(Java 是解释性的 Java!) JavaScript 和 Java 一样拥有 C语言族语法特性,但是在更深的层次它更类似于
Scheme 和
Self。它是一个微型语言,但是它同时是功能非常强大的表达式语言。你应该重视它。你将会发现它并不是一个语言玩具,它是一个拥有着不同属性的完整语言。
JavaScript 是一个常用的语言,不需要花费太多的时间进行学习。它比 Java 更适合用于客户端编程等场景。依我个人的经验,我发现使用 JavaScript 使我 Java 语言方面的能以也得到提高,因为它为我引入了一些列非常有用的动态技术。
最初,介绍 JavaScript 的时候,我误解为它不值得我的关注。很久之后,我使用另外一种眼光看待它的时候发现藏在浏览器之下的是一个非常完美的编程语言。我最初的态度是建立在 Sun 和 Netscape 对 JavaScript 最初定位的基础上的。为了不至于和 Java 定位发生冲突,他们误传 JavaScript 的定位。在假货和业余市场,不少低劣的 JavaScript 书籍中传经常出现他们的误传。
历史
JavaScript 由 Netscape 公司的 Brendan Eich 作为一种页面脚本语言为 Navigator 2 创造。它是一个典型的表达式动态语言。因为它和 web 浏览器的联系,很快受到广泛的欢迎。没有经历一个在实际使用修改和完善的审查阶段。因此,这个语言是强大的但是同时又是有缺陷的。
这篇文章描述 ECMAScript 第三版(aka JavaScript 1.5)。 Microsoft 和 Netscape 在不断的修订版本,但是并没有修改该语言的缺陷。那些新语言并不是 JavaScript 也超出了本文的范围。
数据类型
JavaScript 拥有一个很少的数据类型。它有三个基本类型 boolean, number 和 string 和一些特殊值 null 和 undefined。其它所有都是 object 的变种。
Boolean 有两个值:true 和 false。
Number 是64位浮点数,类似与 Java 的 double 和 Double。没有整形类型。两个整数的除法结果是一个有小数的结果。Number也同样拥有特殊的值 NaN(不是一个 number) 和 Infinity。
String是一个拥有零个或多个的 unicode 字符串。没有单独的字符类型。一个字符用长度为一个的字符创代表。文字字符串使用 ‘ 或 “ 字符括起来。括号的使用可以随意选择,但是必须匹配。
'This is a string.'
"Isn't this a string? Yes!"
'A' // 字符A
“”//空字符串
和 Java 类似,保留字使用 \ 字符。String 是不可变得。String 有一个 length 成员,用于确定字符串的字符个数。
var s = "Hello World!";
s.length == 12
可以给原始类型添加方法。因此,你可以添加一个 int() 方法给所有的 number 类型数据,这时 Math.PI.int() 的结果是 3。
对 Object 的实现可以提供其它类型,例如 日期 和 正则表达式,但是那些也都是object。其它任意类型都是 object。
<!-- 待续 -->