让我们从头开始。

一个程序,经常被称为 源代码 或者只是 代码,是一组告诉计算机要执行什么任务的特殊指令。代码通常保存在文本文件中,虽然你也可以使用JavaScript在一个浏览器的开发者控制台中直接键入代码 —— 我们一会儿就会讲解。

合法的格式与指令的组合规则被称为一种 计算机语言,有时被称作它的 语法,这和英语教你如何拼写单词,和如何使用单词与标点创建合法的句子差不多是相同的。

语句

在一门计算机语言中,一组单词,数字,和执行一种具体任务的操作符构成了一个 语句。在JavaScript中,一个语句可能看起来像下面这样:

  1. a = b * 2;

字符ab被称为 变量(参见“变量”),它们就像简单和盒子,你可以把任何东西存储在其中。在程序中,变量持有将被程序使用的值(比如数字42)。可以认为它们就是值本身的标志占位符。

相比之下,2本身只是一个值,称为一个 字面值,因为它没有被存入一个变量,是独立的。

字符=*操作符(见“操作符”) —— 它们使用值和变量实施动作,比如赋值和数学乘法。

在JavaScript中大多数语句都以末尾的分号(;)结束。

语句a = b * 2;告诉计算机,大致上,去取得当前存储在变量b中的值,将这个值乘以2,然后将结果存回到另一个我们称为a变量里面。

程序只是许多这样的语句的集合,它们一起描述为了执行你的程序的意图所要采取的所有步骤。

表达式

语句是由一个或多个 表达式 组成的。一个表达式是一个引用,指向变量或值,或者一组用操作符组合的变量和值。

例如:

  1. a = b * 2;

这个语句中有四个表达式:

  • 2是一个 字面量表达式
  • b是一个 变量表达式,它意味着取出它的当前值
  • b * 2是一个 算数表达式,它意味着执行乘法
  • a = b * 2是一个 赋值表达式,它意味着将表达式b * 2的结果赋值给变量a(稍后有更多关于赋值的内容)

一个独立的普通表达式也被称为一个 表达式语句,比如下面的:

  1. b * 2;

这种风格的表达式语句不是很常见也没什么用,因为一般来说它不会对程序的运行有任何影响 —— 它将取得b的值并乘以2,但是之后不会对结果做任何事情。

一种更常见的表达式语句是 调用表达式 语句(见“函数”),因为整个语句本身是一个函数调用表达式:

  1. alert( a );

执行一个程序

这些程序语句的集合如何告诉计算机要做什么?这个程序需要被 执行,也称为 运行这个程序

在开发者们阅读与编写时,像a = b * 2这样的语句很有帮助,但是它实际上不是计算机可以直接理解的形式。所以一个计算机上的特殊工具(不是一个 解释器 就是一个 编译器)被用于将你编写的代码翻译为计算机可以理解的命令。

对于某些计算机语言,这种命令的翻译经常是在每次程序运行时从上向下,一行接一行完成的,这通常成为代码的 解释

对于另一些语言,这种翻译是提前完成的,成为代码的 编译,所以当程序稍后 运行 时,实际上运行的东西已经是编译好,随时可以运行的计算机指令了。

JavaScript通常被断言为是 解释型 的,因为你的JavaScript源代码在它每次运行时都被处理。但这并不是完全准确的。JavaScript引擎实际上在即时地 编译 程序然后立即运行编译好的代码。

注意: 更多关于JavaScript编译的信息,参见本系列的 作用域与闭包 的前两章。