1.1 JavaScript语言核心
本节是JavaScript语言的一个快速概览,也是本书第一部分的快速概览。在本章之后,我们将着重关注JavaScript的基础知识:第2章讲解JavaScript注释、分号和Unicode字符集。第3章会更加有意思,主要讲解JavaScript变量和赋值。这里有一些示例代码来说明这两章的重点内容:
//所有在双斜线之后的内容都属于注释
//仔细阅读这里的注释:它们对JavaScript代码做了解释
//变量是表示值的一个符号名宇
//变量是通过var关键字声明的
var x; 声明一个变量x
//值可以通过等号赋值给变量
x= 0; //现在变量x的值为o
X //=> 0:通过变量获取其值
//JavaScript支持多种数据类型
x= 1; //数字
x= 0.01; //整数和实数共用一种数据类型
x= "hello world"; //由双引号内的文本构成的字符串
x= ‘Javascript ‘; //单引号内的文本同样构成字符串
x= true; //布尔值
x= false; //另一个布尔值
x= null; //null是-一个特殊的值,意思是"空"
x= undefined; //undefined利和null非常类似
JavaScript中两个非常重要的数据类型是对象和数组。第6章介绍对象,第7章介绍数组,对象和数组在JavaScript中是如此之重要,以至于你在本书中处处都能看到它们的身影。
//JavaScript中的最重要的类型就是对象
//对象是名/值对的合,或字符到值映的合
var book = { //对象是由花括号括起来的
topic:"JavaScript", //属性"topic"的值是”JavaScript"
fat: true //属性"fat"的值是true
}; //右花括号标记了对象的结束
//通过”."或”[]”来访问对象属性
book.topic // =》"JavaScript"
book["fat"] //=>true:另外一种获取属性的式
book-author ="Flanagan"; //通过默值创建一个新属性
book.contents = {}; // [)是一个空对象,它没有属性
// JavaScript同样支持数组(以数字为索引的列表)
var primes =[2,3,5,7] //拥有4个值的数组,由”["和”]"划定边界
primes[o] // =>2数组中的第一个元素 (索为0)
primes.length //=>4:数组中的元素个数
primes[primes.length – 1] //=>7:数组的后一个元素
primes[4] =9; //通过赋值来添加新元素
primes[4]=11; //或通过赋值来改变已有的元素
var empty -[]; //[] 是空数组,它具有0个元素
empty.length //=>0
//数组和对象中都可以包含另一个数组或对象:
var points =[ //具有两个元素的数组
{x: 0,y: 0), //每个元素都是一个对象
{x: 1,y: 1)
];
var data = { //一个包含两个属性的对象
trial1: [[!1, 2],[3,4]], //每一个属性都是致组
trial2:[[2,3],[4,5]] //数组的元素也是数组
};
上段代码中通过方括号定义数组元素和通过花括号定义对象属性名和属性值之间的映射关系的语法称为初始化表达式 (initializer expression),第4章有专门的介绍。表达式是JavaScript中的一个短语,这个短语可以通过运算得出一个值。通过“.”和“[]”来用对象属性或数组元素的值就构成一个表达式。比如,请看一下上述代码中独占一行的表达式,其后的注释中箭头(=>) 后的值就是表达式的运算结果。这种写法本书中的一种约定表述方式。
JavaScript 中最常见的表达式写法是像下面代码这样使用运算符(operator )
// JavaScript 定 义了一些算 术运算符的 简写形式
如果 Ja vaScri pt中的 "短语”是 表达式的话, 那么整个句子就称做语句 ( statement ) , 第5章会详细讲解。在上述代码中,以 分号结束的行均是一条语句(下面的代码中, 会看到省略分号的多行语句)。实际上,语句和表达式之间有很多共同之处,粗略地讲,表达式仅仅计算出一个值但并不作任何操作,它并不改变程序的运行状态。而语句并不包含一个值(或者说它包含的值我们并不关心),但它们改变程序的运行状态。在上文中已经见过变最声明语句和赋值语句。另一类语句是“控制结构" (control structure) , 比如条件判断和循环。在介绍完函数之后,我们给出相关的示例代码。
函数是带有名称 ( named ) 译注2 和参数的Ja vaScript 代码段 , 可以一次定义多次调用。第8 章会正式详细地讲解函数。与对象和数组一样,在本书的很多地方都会提到函数。这里 是一些简单的示例代码:
当将函数和对象合写在一起时,函数就变成了”方法" (method) :
现在, 给出一些控制语句的例子 , 这里的示例函数体内包含了最常见的 Ja vaS c r i p t控制语句:
JavaScript 是一种面向对象的编程语言, 但和传统的面向对象又有很大区 别。第9章将详细讲解JavaScript中的面向对象编程, 这一章有大量的示例代码,是 本书中最长的一章。这里有一个简单的示例 , 这段代码展示了如何在 JavaS cri pt中定义一个类来表示2D平面几何中的点。
这个类实例化的对象拥有一个名为r () 的方法 , 用来计算该点到原点的距离:
第9章是第一部分的精华所在,后续的 各章做了一些零星的延伸,将 我们对JavaS cript 语言核心的探索带向尾声。 第10章主要讲解了正则表达式的语法 ,并演示 了如何使用这些
“正则表达式” 进行文本的模式匹配。第 11章介绍JavaS cri pt语言核心的子集和超集。 最后, 在进入客户端 Ja vaScript 的内容之前,第 1 2章介绍两种在Web浏览器之外的两种JavaScirpt运行环境。