# ECMAScript 语法

熟悉 Java、C 和 Perl 这些语言的开发者会发现 ECMAScript 的语法很容易掌握，因为它借用了这些语言的语法。

Java 和 ECMAScript 有一些关键的语法特性相同，也有一些完全不同。

## 区分大小写

与 Java 一样，变量、函数名、运算符以及其他一切东西都是区分大小写的。

比如：

变量 test 与变量 TEST 是不同的。

## 变量是弱类型的

与 Java 和 C 不同，ECMAScript 中的变量无特定的类型，定义变量时只用 var 运算符，可以将它初始化为任意值。

因此，可以随时改变变量所存数据的类型（尽量避免这样做）。

### 例子

    var color = "red";
    var num = 25;
    var visible = true;

## 每行结尾的分号可有可无

Java、C 和 Perl 都要求每行代码以分号（;）结束才符合语法。

ECMAScript 则允许开发者自行决定是否以分号结束一行代码。如果没有分号，ECMAScript 就把折行代码的结尾看做该语句的结尾（与 Visual Basic 和 VBScript 相似），前提是这样没有破坏代码的语义。

最好的代码编写习惯是总加入分号，因为没有分号，有些浏览器就不能正确运行，不过根据 ECMAScript 标准，下面两行代码都是正确的：

    var test1 = "red"
    var test2 = "blue";

## 注释与 Java、C 和 PHP 语言的注释相同

ECMAScript 借用了这些语言的注释语法。

有两种类型的注释：

- 单行注释以双斜杠开头（//）
- 多行注释以单斜杠和星号开头（/*），以星号和单斜杠结尾（*/）

    //this is a single-line comment

    /*this is a multi-
    line comment*/

## 括号表示代码块

从 Java 中借鉴的另一个概念是代码块。

代码块表示一系列应该按顺序执行的语句，这些语句被封装在左括号（{）和右括号（}）之间。

例如：

    if (test1 == "red") {
        test1 = "blue";
        alert(test1);
    }