- 你不知道的JavaScript(下卷)
- (美)凯尔·辛普森
- 877字
- 2020-08-29 01:58:05
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)。