1.4 运算符

使用运算符,我们可以对变量和值执行操作。我们已经在前文中看到了=和*这两个JavaScrit运算符。

运算符*执行算术乘法。很简单,对吧?

等号运算符=用于赋值——我们先计算=右边(源值)的值,然后将它存入左边(目标变量)指定的变量中。

这种赋值方法的顺序看起来是反的,有点奇怪。有些人可能更习惯将顺序调过来,将源值放在左边,目标变量放在右边,不用a = 42这种形式,而是42-> a(这不是合法的JavaScript)。但问题是,a = 42这种顺序以及类似的变体在现代编程语言中是非常流行的。如果感觉不太习惯的话,那么你就要花点时间来习惯它,并将它植入到你的思维中。

考虑:

        a = 2;
        b = a + 1;

在上述示例中,我们将值2赋给变量a。然后,我们取得变量a的值(仍然是2),加上1,得到结果3,再将这个值保存在变量b中。

虽然var严格意义上说并不是一个运算符,但每个程序都会用到这个关键词,因为它是声明(也就是创建)变量(参见1.7节)的基本方法。

在使用变量前总是应该先声明变量。一个变量在每个作用域(参见1.11节)中只需要声明一次;声明之后可以按照需要多次使用。如下所示:

        var a = 20;
        a = a + 1;


        a = a * 2;
        console.log( a );  // 42

以下是JavaScript中最常用的一些运算符。

· 赋值

=,如a = 2就表示将值2保存在变量a中。

· 算术

+(加)、-(减)、*(乘)、/(除),如a * 3。

· 复合赋值

+=、-=、*=和/=是复合运算符,可以将算术运算符与赋值组合起来,比如,a += 2等同于a = a + 2。

· 递增/递减

++表示递增,--表示递减,比如a++就类似于a = a + 1。

· 对象属性访问

如console.log()中的.。

对象是在名为属性的位置中持有其他值的值。obj.a指的是一个名为obj的对象值,并伴有一个属性名为a的属性。也可以通过obj["a"]这种形式访问属性。参见第2章。

· 相等

==(粗略相等)、===(严格相等)、! =(粗略不等)和!==(严格不等),如a == b。

参见2.1节。

· 比较

<(小于)、>(大于)、<=(小于或粗略等于)和>=(大于或粗略等于),如a <= b。

参见2.1节。

· 逻辑

&&(与)和||(或),如a || b就表示a或者b。

这些运算符用于表示复合条件(参见1.9节),比如a或b为真。

有关运算符的更多细节以及这里没有覆盖到的更多介绍,参见Mozilla开发者网络的“表达式与运算符”(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions and Operators)。