操作符是我们如何在变量和值上实施操作的方式。我们已经见到了两种JavaScript操作符,=*

    *操作符实施数学乘法。够简单的,对吧?

    =操作符用于 赋值 —— 我们首先计算= 右手边 的值(源值)然后将它放进我们在 左手边 指定的变量中(目标变量)。

    警告: 对于指定赋值,这看起来像是一种奇怪的倒置。与a = 42不同,一些人喜欢把顺序反转过来,于是源值在左而目标变量在右,就像42 -> a(这不是合法的JavaScript!)。不幸的是,a = 42顺序的形式,和与其相似的变种,在现代编程语言中是十分流行的。如果它让你觉得不自然,那么就花些时间在脑中演练这个顺序并习惯它。

    考虑如下代码:

    1. a = 2;
    2. b = a + 1;

    这里,我们将值2赋值给变量a。然后,我们取得变量a的值(还是2),把它加1得到值3,然后将这个值存储到变量b中。

    虽然在技术上说var不是一个操作符,但是你将在每一个程序中都需要这个关键字,因为它是你 声明(也就是 创建)变量(见“变量”)的主要方式。

    你应当总是在使用变量前用名称声明它。但是对于每个 作用域(见“作用域”)你只需要声明变量一次;它可以根据需要使用任意多次。例如:

    1. var a = 20;
    2. a = a + 1;
    3. a = a * 2;
    4. 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它选择ab中的一个。

      这些操作符用于表达复合的条件(见“条件”),比如如果a或者b成立。

    注意: 更多细节,以及在此没有提到的其他操作符,可以参见Mozilla开发者网络(MDN)的“表达式与操作符”(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators)。