Javascript 简明教程

JavaScript - Assignment Operators

JavaScript Assignment Operators

JavaScript 中的 assignment 运算符用于向变量赋值。这些是二元运算符。赋值运算符采用两个操作数,根据右操作数的值向左操作数赋值。左操作数始终是变量,右操作数可以是文字、变量或表达式。

let x = 10; // right operand is a literal
let y = x; // right operand is a variable
let z = x + 10; // right operand is an expression

assignment 操作符首先计算表达式,然后将值赋给变量(左操作数)。

一个简单的赋值运算符是 equal (=) 运算符。在 JavaScript 语句“let x = 10;”中,= 运算符将 10 赋给变量 x。

我们可以将一个简单的赋值运算符与算术、逻辑等其他类型的运算符组合来获得复合赋值运算符。一些算术赋值运算符是 =、-=、*=、/= 等。= 运算符对操作数执行加法运算,并将结果赋给左手操作数。

Arithmetic Assignment Operators

在本节中,我们将介绍简单的赋值和算术赋值运算符。算术赋值运算符执行算术运算,并将结果赋给变量。以下是带有示例的运算符列表 -

Assignment Operator

Example

Equivalent To

= (Assignment)

a =

a = b

+= (Addition Assignment)

a +=

a = a + b

-= (Subtraction Assignment)

a -=

a = a – b

*= (Multiplication Assignment)

a *=

a = a * b

/= (Division Assignment)

a /=

a = a / b

%= (Remainder Assignment)

a %=

a = a % b

**= (Exponentiation Assignment)

a **=

a = a ** b

Simple Assignment (=) Operator

<html>
<body>
  <div id="output"></div>
  <script>
    let x = 5;
    let y = x + 10;
    document.getElementById("output").innerHTML =
    "Value of x : " + x + "<br>" +
    "Value of y : " + y;
  </script>
</body>
</html>

以下是赋值链的示例 -

<html>
<body>
  <div id="output"></div>
  <script>
    let x = y = 5;
    document.getElementById("output").innerHTML =
    "Value of x : " + x + "<br>" +
    "Value of y : " + y;
  </script>
</body>
</html>

Addition Assignment (+=) Operator

JavaScript 加法赋值运算符在两个操作数上执行加法,并将结果赋给左操作数。在加法中可能是数字加法或字符串连接。

x += b;

在上面的语句中,它添加了 b 和 x 的值,并将结果赋给 x。

<html>
<body>
  <div id="output"></div>
  <script>
    let x = 5;
    x += 7;
    document.getElementById("output").innerHTML = "Value of x : " + x;
  </script>
</body>
</html>
<html>
<body>
  <div id="output"></div>
  <script>
    let x ="Hello";
    x += " World";
    document.getElementById("output").innerHTML = "Value of x : " + x;
  </script>
</body>
</html>

Subtraction Assignment (-=) Operator

JavaScript 中的减法赋值运算符从左操作数中减去右操作数的值,并将结果赋给左操作数(变量)。

let x -=b;

在上面的语句中,它从 x 减去 b 并将结果分配给 x。

<html>
<body>
  <div id="output"></div>
  <script>
    let x = 15;
    x -= 5;
    document.getElementById("output").innerHTML = "Value of x : " + x;
  </script>
</body>
</html>

Multiplication Assignment (*=) Operator

JavaScript 中的乘法赋值运算符对两个操作数进行乘法运算,并将其结果分配给左操作数。

let x *= b;

在上面的语句中,它对 x 和 b 进行乘法运算,并将其结果分配给 x。

<html>
<body>
  <div id="output"></div>
  <script>
    let x = 10;
	x *= 5;
    document.getElementById("output").innerHTML = "Value of x : " + x;
  </script>
</body>
</html>

Division Assignment (/=) Operator

此运算符将左操作数除以右操作数,并将结果分配给左操作数。

let x /= b;

在上面的语句中,它将 x 除以 b,并将结果(商)分配给 x。

<html>
<body>
  <div id="output"></div>
  <script>
    let x = 10;
    x /= 5;
    document.getElementById("output").innerHTML = "Value of x : " + x;
  </script>
</body>
</html>

Remainder Assignment (%=) Operator

JavaScript 求余赋值运算符对操作数进行求余运算,并将其结果分配给左操作数。

let x %= b;

在上面的语句中,它将 x 除以 b,并将结果(余数)分配给 x。

<html>
<body>
  <div id="output"></div>
  <script>
    let x = 12;
    x %= 5;
    document.getElementById("output").innerHTML = "Value of x : " + x;
  </script>
</body>
</html>

Exponentiation Assignment (**=) Operator

此运算符对操作数执行幂运算,并将结果分配给左操作数。

let x **= b;

在上面的语句中,它计算 x**b 并将其结果分配给 x。

<html>
<body>
  <div id="output"></div>
  <script>
    let x = 5;
    x **= 3;
    document.getElementById("output").innerHTML = "Value of x : " + x;
  </script>
</body>
</html>

JavaScript Bitwise Assignment operators

按位赋值运算符对操作数执行按位运算,并将结果分配给变量。这些运算执行两个运算:首先是按位运算,其次是简单的赋值运算。按位运算是在二进制位级别执行的。按位运算符将两个操作数都作为 32 位有符号整数对待,并对操作数的相应位执行运算。简单的赋值运算符将结果分配给变量(左操作数)。

以下是带示例的运算符列表:

Assignment Operator

Example

Equivalent To

&= (Bitwise AND Assignment)

a &=

a = a & b

= (Bitwise OR Assignment)

a

=

a = a

b

^= (Bitwise XOR Assignment)

a ^=

a = a ^ b

Bitwise AND Assignment Operator

JavaScript 按位 AND 赋值 (&=) 运算符对操作数执行按位 AND 运算,并将结果分配给左操作数(变量)。

let x &= b;

在上面的语句中,它对 x 和 b 进行按位 AND 运算,并将结果分配给变量 x。

<html>
<body>
  <div id="output"></div>
  <script>
    let x = 7;
    x &= 5;
    document.getElementById("output").innerHTML = "Value of x : " + x;
  </script>
</body>
</html>

Bitwise OR Assignment Operator

JavaScript 按位 OR 赋值 (|=) 运算符对操作数执行按位 OR 运算,并将结果分配给左操作数(变量)。

let x |= b;

在上面的语句中,它对 x 和 b 进行按位 OR 运算,并将结果分配给变量 x。

<html>
<body>
  <div id="output"></div>
  <script>
    let x = 7;
    x |= 5;
    document.getElementById("output").innerHTML = "Value of x : " + x;
  </script>
</body>
</html>

Bitwise XOR Assignment Operator

JavaScript 按位 XOR 赋值 (^=) 运算符对操作数执行按位 XOR 运算,并将结果分配给左操作数(变量)。

let x ^= b;

在上面的语句中,它对 x 和 b 进行按位 XOR 运算,并将结果分配给变量 x。

<html>
<body>
  <div id="output"></div>
  <script>
    let x = 7;
    x ^= 5;
    document.getElementById("output").innerHTML = "Value of x : " + x;
  </script>
</body>
</html>

JavaScript Shift Assignment Operators

移位赋值运算符对操作数执行按位移位操作,并将结果赋值给变量(左操作数)。这些是两个运算符的组合,第一个是按位移位运算符,第二个是简单的赋值运算符。

以下是移位赋值运算符的列表,带示例:

Assignment Operator

Example

Equivalent To

<⇐ (Left Shift Assignment)

a <⇐

a = a << b

>>= (Right Shift Assignment)

a >>=

a = a >> b

>>>= (无符号右移赋值)

a >>>=

a = a >>> b

Left Shift Assignment Operator

JavaScript 左移位赋值运算符 (<⇐) 对操作数执行左移位操作,并将结果赋值给左操作数(变量)。

let x <<= b;

在上面的语句中,它对 x 和 b 执行左移位,并将结果赋值给变量 x。

<html>
<body>
  <div id="output"></div>
  <script>
    let x = 7;
    x <<= 2;
    document.getElementById("output").innerHTML = "Value of x : " + x;
  </script>
</body>
</html>

Right Shift Assignment Operator

JavaScript 右移位赋值运算符 (>>=) 对操作数执行右移位操作,并将结果赋值给左操作数(变量)。

let x >>= b;

在上面的语句中,它对 x 和 b 执行右移位,并将结果赋值给变量 x。

<html>
<body>
  <div id="output"></div>
  <script>
    let x = 7;
	x >>= 1;
    document.getElementById("output").innerHTML = "Value of x : " + x;
  </script>
</body>
</html>

Unsigned Right Shift Assignment Operator

JavaScript 无符号右移位赋值运算符 (>>>=) 对操作数执行无符号右移位操作,并将结果赋值给左操作数(变量)。

let x >>>= b;

在上面的语句中,它对 x 和 b 执行无符号右移位,并将结果赋值给变量 x。

<html>
<body>
  <div id="output"></div>
  <script>
    let x = 7;
    x >>>= 2;
    document.getElementById("output").innerHTML ="Value of x : " + x;
  </script>
</body>
</html>

JavaScript Logical Assignment operators

在 JavaScript 中,逻辑赋值运算符对操作数执行逻辑运算,并将结果赋值给变量(左操作数)。每个逻辑赋值运算符都是两个运算符的组合,第一个是逻辑运算符,第二个是简单的赋值运算符。

以下是逻辑赋值运算符的列表,带示例:

Assignment Operator

Example

Equivalent To

&&= (Logical AND Assignment)

a &&=

a = a && b

= (Logical OR Assignment)

a

=

a = a

b

??= (Nullish Coalescing Assignment)

a ??=

a = a ?? b

Example

<html>
<body>
  <div id="output"></div>
  <script>
    var a = 5;
    var b = 10;
    var result = (a &&= b);
    document.getElementById("output").innerHTML =
	"Value of (a &&= b) => " + result + "<br/>";
    result = (a ||= b);
    document.getElementById("output").innerHTML +=
	"Value of (a ||= b) => " + result;
  </script>
</body>
</html>