1. 赋值运算符

可以将=右侧的值赋值给左侧的变量。

var a = 10;
var b = a;

2. 自增运算

我们经常需要对一个变量做运算,并将新的结果存储在同一个变量中。

例如:

var n = 2;
n = n + 5;
n = n * 2;
n = n - 2;

可以使用运算符 +=*=-= 来缩写这种表示。

var n = 2;
n += 5; // 现在 n = 7(等同于 n = n + 5)
n *= 2; // 现在 n = 14(等同于 n = n * 2)
n -= 2; // 现在 n = 12 (等同于 n = n - 2;)
alert( n ); // 12

所有算术运算符都有简短的“修改并赋值”运算符:/=-= 等。

这类运算符的优先级与普通赋值运算符的优先级相同,所以它们在大多数其他运算之后执行:

let n = 2;

n *= 3 + 5;

alert( n ); // 16 (右边部分先被计算,等同于 n *= 8)

3. 自增1和自减1

自增1和自减1:对一个数进行加一、减一是最常见的数学运算符之一。

所以,对此有一些专门的运算符:

3.1 自增1

++ 将变量与 1 相加:

var counter = 2;
counter++;      // 和 counter = counter + 1 效果一样,但是更简洁
alert( counter ); // 3

3.2 自减1

-- 将变量与 1 相减:

var counter = 2;
counter--;      // 和 counter = counter - 1 效果一样,但是更简洁
alert( counter ); // 1

自增/自减只能应用于变量。试一下,将其应用于数值(比如 5++)则会报错。

3.3 补充

运算符 ++-- 可以置于变量前,也可以置于变量后。

  • 当运算符置于变量后,被称为“后置形式”:counter++
  • 当运算符置于变量前,被称为“前置形式”:++counter

两者都做同一件事:将变量 counter1 相加(实现counter的自增1)。

那么它们有区别吗?

为了直观看到区别,看下面的例子:

/**/
var counter = 1;
var a = ++counter;
// 前置形式 `++counter`,对 `counter` 做自增运算,返回的是新的值 `2`。因此 `alert` 显示的是 `2`。
alert(a); // 2
/**/
var counter = 1;
var a = counter++;
//后置形式 `counter++`,它同样对 `counter` 做加法,但是返回的是 **旧值**(做加法之前的值)。因此 `alert` 显示的是 `1`。
alert(a); // 1

总结:

如果只想对变量进行自增/自减操作,那么两者形式没有区别:

var counter = 0;
counter++;
++counter;
alert( counter ); // 2,以上两行作用相同

4. 运算符优先级

常用运算符优先级从高到低

 1. ()  优先级最高
 2. 一元运算符  ++   --   !
 3. 算数运算符  先*  /  %   后 +   -
 4. 关系运算符  >   >=   <   <=
 5. 相等运算符   ==   !=    ===    !==
 6. 逻辑运算符 先&&   后||
 7. 赋值运算符
// 练习1:
4 >= 10 || '不凡' != 'bufan' && !(12 * 2 == 100) && true
// 练习2:
var age = 20;
5 == age / 2 && (2 + 2 * age).toString() === '42'
文档更新时间: 2023-04-06 16:25   作者:孙老师