操作符是我们如何在变量和值上实施操作的方式。我们已经见到了两种JavaScript操作符,=
和*
。
*
操作符实施数学乘法。够简单的,对吧?
=
操作符用于 赋值 —— 我们首先计算=
右手边 的值(源值)然后将它放进我们在 左手边 指定的变量中(目标变量)。
警告: 对于指定赋值,这看起来像是一种奇怪的倒置。与a = 42
不同,一些人喜欢把顺序反转过来,于是源值在左而目标变量在右,就像42 -> a
(这不是合法的JavaScript!)。不幸的是,a = 42
顺序的形式,和与其相似的变种,在现代编程语言中是十分流行的。如果它让你觉得不自然,那么就花些时间在脑中演练这个顺序并习惯它。
考虑如下代码:
a = 2;
b = a + 1;
这里,我们将值2
赋值给变量a
。然后,我们取得变量a
的值(还是2
),把它加1
得到值3
,然后将这个值存储到变量b
中。
虽然在技术上说var
不是一个操作符,但是你将在每一个程序中都需要这个关键字,因为它是你 声明(也就是 创建)变量(见“变量”)的主要方式。
你应当总是在使用变量前用名称声明它。但是对于每个 作用域(见“作用域”)你只需要声明变量一次;它可以根据需要使用任意多次。例如:
var a = 20;
a = a + 1;
a = a * 2;
console.log( a ); // 42
这里是一些在JavaScript中最常见的操作符:
- 赋值:比如
a = 2
中的=
。 - 数学:
+
(加法),-
(减法),*
(乘法),和/
(除法),比如a * 3
。 - 复合赋值:
+=
,-=
,*=
,和/=
都是复合操作符,它们组合了数学操作和赋值,比如a += 2
(与a = a + 2
相同)。 - 递增/递减:
++
(递增),--
(递减),比如a++
(和a = a + 1
很相似)。 对象属性访问:比如
console.log()
的.
。对象是一种值,它可以在被称为属性的,被具体命名的位置上持有其他的值。
obj.a
意味着一个称为obj
的对象值有一个名为a
的属性。属性可以用obj["a"]
这种替代的方式访问。参见第二章。等价性:
==
(宽松等价),===
(严格等价),!=
(宽松不等价),!==
(严格不等价),比如a == b
。参见“值与类型”和第二章。
比较:
<
(小于),>
(大于),<=
(小于或宽松等价),>=
(大于或宽松等价),比如a <= b
。参见“值与类型”和第二章。
逻辑:
&&
(与),||
(或),比如a || b
它选择a
或b
中的一个。这些操作符用于表达复合的条件(见“条件”),比如如果
a
或者b
成立。
注意: 更多细节,以及在此没有提到的其他操作符,可以参见Mozilla开发者网络(MDN)的“表达式与操作符”(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators)。