1 / 84
文档名称:

JavaScript语言精髓与编程实践(第二章).pdf

格式:pdf   页数:84
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

JavaScript语言精髓与编程实践(第二章).pdf

上传人:紫岑旖旎 2012/7/14 文件大小:0 KB

下载得到文件列表

JavaScript语言精髓与编程实践(第二章).pdf

文档介绍

文档介绍:CHAPTER
第 2 章
JavaScript 的语法
当然,我们可以从很多个方面来阐述“JavaScript 是怎样的一种语言”这个话
题,但对于开发人员来说,最直接的感受总是来自语言的语法与约定。
以对 JavaScript 的语法叙述来说,《JavaScript 权威指南》是最好的一本参考
书。但我不能期望用户要读完那本厚厚的书才能阅读本书,因此还是在这里讲述
一下语法。
很多人、很多书会把浏览器、DOM 等作为 JavaScript 的一部分进行讲述。在
我看来,JavaScript 只是一种语言,由标识符、值、语句等要素构成。而且本章(包
括本书)面向的都是有一定开发经验的程序员,所以仅讲述语法中的关键部分,
并不打算讨论除此之外的一些细节。
由于本章是概述性质的,因此请留意每小节之前对内容的概括和汇总性的表
格。它们可能是从另一个角度概括、汇总了相关的知识,因此或许出现与你正在
阅读的书籍(或既有的知识)不一致的情况。但这些不一致,却是我们后面进一
步讨论语言的基础。
语法综述
一般来说,语言中的标识符可以分为两类,一类用于命名语法(以及类型),一类用
于命名值(的存储位置)。前者被称为“语法关键字”,后者则被称为“变量”和“常量”。
由此引入了一个概念:绑定。从标识符的角度来说,绑定分为语法关键字与语法(语
JavaScript 语言精髓与编程实践(第 2 版)
32 第 2 章 JavaScript 的语法
义)逻辑的绑定,以及变量与它所存储值的位置的绑定。语法关键字对逻辑的绑定的结
果,是作用域的限定;变量对位置的绑定的结果,则是变量生存周期的限定。
标识符所绑定的语义
我们看到了程序语言中“声明”的意义(这里强调是意义,而非定义):所谓声明,
即是约定变量的生存周期和逻辑的作用域。由于这里的“声明”已经涵盖了逻辑与数据
(这相当于“程序”的全部),因此整个编程的过程,其实被解释成了“说明逻辑和数据”
的过程。
纯粹陈述“值”的过程,被称为变量和类型声明。
纯粹陈述“逻辑”的过程,被称为语句(含流程控制子句)。
陈述“值与(算法的)逻辑”的关系的过程,被称为表达式。
表 2-1 阐述了主要标识符与其语义关系。
表 2-1 标识符语义关系的基本分类
标识符子分类 JavaScript 示例(部分)
类型(无显式类型声明)
与值相关
直接量 null
变量 undefined
对象 new Object()
值运算
表达式(*注 1) v = 'this is a string.'
对象存取
与逻辑和
值都相关顺序 v = 'this is a string.';
if (false) {
逻辑语句(*注 2) 分支// ...
循环}
break;
continue;
标签声明 return;
try {
与逻辑相关流程控制语句一般流程控制子句// ...
}
异常 catch (e) {
// ...
}
其他注释(略)
*注 1:表达式首先是与值相关的,但因为存在运算的先后顺序,因此它也有与逻辑相关的含义。
*注 2:在 JavaScript 中,逻辑语句是有值的,因此它也是与值相关的。这一点与多数语言不一样。

JavaScript 语言精髓与编程实践(第 2 版)
JavaScript 的语法:变量声明 33
识别语法错误与运行错误
一般来说,JavaScript 引擎会在代码装入时先进行语法分析,如果语法分析通不过,
整个脚本代码块都不执行;当语法分析通过时,才会执行这段脚本代码。若在执行过程
中出错,那么在同一代码上下文中、出错点之后的代码将不再执行。
不同引擎处理这两类错误的提示的策略并不相同。例如,在 IE 的 JScript 脚本引擎
环境中,两种错误的提示大多数时候看起来是一样的。要在不同的脚本引擎中简单地区
别两种错误,较为通行的方法是在代码片断的最前面加上一行输出,例如,使用 alert()
来显示一个信息1。脚本引擎的出错提示在该行之前,则是语法分析期错误。例如:
var head = 'alert("loaded.");';

// 示例 1:声明函数的语法错误
var code = 'funcion func(){};';
eval(head + code);