aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/conflicting/web/javascript/reference/operators_8d54701de06af40a7c984517cbe87b3e
diff options
context:
space:
mode:
authorFlorian Dieminger <me@fiji-flo.de>2021-02-11 18:29:51 +0100
committerGitHub <noreply@github.com>2021-02-11 18:29:51 +0100
commit2bc5610921312613f8623f7ed347aa576689b2b6 (patch)
treef17a7a00e232c97d1335ff3cb24dbcfafacfe141 /files/zh-cn/conflicting/web/javascript/reference/operators_8d54701de06af40a7c984517cbe87b3e
parent964decad361766e85d928a56f0ab80af0e75c172 (diff)
parentfc56124ac4eda6b3f0349c8a16fa750f27b4c7d6 (diff)
downloadtranslated-content-2bc5610921312613f8623f7ed347aa576689b2b6.tar.gz
translated-content-2bc5610921312613f8623f7ed347aa576689b2b6.tar.bz2
translated-content-2bc5610921312613f8623f7ed347aa576689b2b6.zip
Merge pull request #32 from fiji-flo/unslugging-zh-cn
Unslugging zh cn
Diffstat (limited to 'files/zh-cn/conflicting/web/javascript/reference/operators_8d54701de06af40a7c984517cbe87b3e')
-rw-r--r--files/zh-cn/conflicting/web/javascript/reference/operators_8d54701de06af40a7c984517cbe87b3e/index.html415
1 files changed, 415 insertions, 0 deletions
diff --git a/files/zh-cn/conflicting/web/javascript/reference/operators_8d54701de06af40a7c984517cbe87b3e/index.html b/files/zh-cn/conflicting/web/javascript/reference/operators_8d54701de06af40a7c984517cbe87b3e/index.html
new file mode 100644
index 0000000000..0312efc731
--- /dev/null
+++ b/files/zh-cn/conflicting/web/javascript/reference/operators_8d54701de06af40a7c984517cbe87b3e/index.html
@@ -0,0 +1,415 @@
+---
+title: 赋值运算符
+slug: >-
+ conflicting/Web/JavaScript/Reference/Operators_8d54701de06af40a7c984517cbe87b3e
+tags:
+ - JavaScript
+ - 运算符
+translation_of: Web/JavaScript/Reference/Operators#Assignment_operators
+translation_of_original: Web/JavaScript/Reference/Operators/Assignment_Operators
+original_slug: Web/JavaScript/Reference/Operators/Assignment_Operators
+---
+<div>{{jsSidebar("Operators")}}</div>
+
+<p>赋值运算符(<strong>assignment operator</strong>)基于右值(right operand)的值,给左值(left operand)赋值。</p>
+
+<div>{{EmbedInteractiveExample("pages/js/expressions-assignment.html")}}</div>
+
+<p class="hidden">本文的交互示例的源代码存储在GithHub仓库。如果你愿意贡献更多交互示例,请克隆仓库 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> 并提交 pull request.</p>
+
+<h2 id="概述">概述</h2>
+
+<p>基本的赋值运算符是等号(<code>=</code>),该运算符把它右边的运算值赋给左边。即,<code>x = y</code> 把 <code>y</code> 的值赋给 <code>x</code>。 其他的赋值运算符通常是标准运算符的简写形式,如下面的定义与示例。 </p>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th>名称</th>
+ <th>简写形式</th>
+ <th>含义</th>
+ </tr>
+ <tr>
+ <td><a href="#Assignment">赋值(Assignment)</a></td>
+ <td><code>x = y</code></td>
+ <td><code>x = y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Addition_assignment">加赋值(Addition assignment)</a></td>
+ <td><code>x += y</code></td>
+ <td><code>x = x + y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Subtraction_assignment">减赋值(Subtraction assignment)</a></td>
+ <td><code>x -= y</code></td>
+ <td><code>x = x - y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Multiplication_assignment">乘赋值(Multiplication assigment)</a></td>
+ <td><code>x *= y</code></td>
+ <td><code>x = x * y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Division_assignment">除赋值(Division assignment)</a></td>
+ <td><code>x /= y</code></td>
+ <td><code>x = x / y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Remainder_assignment">模赋值(Remainder assignment)</a></td>
+ <td><code>x %= y</code></td>
+ <td><code>x = x % y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Exponentiation_assignment">指数赋值(Exponentiation assignment)</a></td>
+ <td><code>x **= y</code></td>
+ <td><code>x = x ** y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Left_shift_assignment">左移赋值(Left shift assignment)</a></td>
+ <td><code>x &lt;&lt;= y</code></td>
+ <td><code>x = x &lt;&lt; y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Right_shift_assignment">右移赋值(Right shift assignment)</a></td>
+ <td><code>x &gt;&gt;= y</code></td>
+ <td><code>x = x &gt;&gt; y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Unsigned_right_shift_assignment">无符号右移赋值(Unsigned right shift assignment)</a></td>
+ <td><code>x &gt;&gt;&gt;= y</code></td>
+ <td><code>x = x &gt;&gt;&gt; y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Bitwise_AND_assignment">按位与赋值(Bitwise AND assignment)</a></td>
+ <td><code>x &amp;= y</code></td>
+ <td><code>x = x &amp; y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Bitwise_XOR_assignment">按位异或赋值(Bitwise XOR assignment)</a></td>
+ <td><code>x ^= y</code></td>
+ <td><code>x = x ^ y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Bitwise_OR_assignment">按位或赋值(Bitwise OR assignment)</a></td>
+ <td><code>x |= y</code></td>
+ <td><code>x = x | y</code></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="赋值"><a name="Assignment">赋值</a></h2>
+
+<p>简单的赋值运算符,把一个值赋给一个变量。为了把一个值赋给多个变量,可以以链式使用赋值运算符。参考下例:</p>
+
+<h4 id="语法">语法</h4>
+
+<pre class="syntaxbox"><strong>Operator:</strong> x = y
+</pre>
+
+<h4 id="示例">示例</h4>
+
+<pre class="brush: js">// Assuming the following variables
+// x = 5
+// y = 10
+// z = 25
+
+x = y // x is 10
+x = y = z // x, y and z are all 25
+</pre>
+
+<h3 id="加赋值(Addition_assignment)"><a name="Addition_assignment">加赋值(Addition assignment)</a></h3>
+
+<p>加赋值运算符把一个右值与一个变量相加,然后把相加的结果赋给该变量。两个操作数的类型决定了加赋值运算符的行为。算术相加或字符串连接都有可能。更多细节参考 {{jsxref("Operators/Arithmetic_Operators", "addition operator", "#Addition", 1)}}。</p>
+
+<h4 id="语法_2">语法</h4>
+
+<pre class="syntaxbox"><strong>Operator:</strong> x += y
+<strong>Meaning:</strong> x = x + y
+</pre>
+
+<h4 id="示例_2">示例</h4>
+
+<pre class="brush: js">// 定义下列变量
+// foo = 'foo'
+// bar = 5
+// baz = true
+
+
+// Number + Number -&gt; addition
+bar += 2 // 7
+
+// Boolean + Number -&gt; addition
+baz += 1 // 2
+
+// Boolean + Boolean -&gt; addition
+baz += false // 1
+
+// Number + String -&gt; concatenation
+bar += 'foo' // "5foo"
+
+// String + Boolean -&gt; concatenation
+foo += false // "foofalse"
+
+// String + String -&gt; concatenation
+foo += 'bar' // "foobar"
+</pre>
+
+<h3 id="减赋值(Subtraction_assignment)"><a name="Subtraction_assignment">减赋值(Subtraction assignment)</a></h3>
+
+<p>减赋值运算符使一个变量减去右值,然后把结果赋给该变量。更多细节查看 {{jsxref("Operators/Arithmetic_Operators", "subtraction operator", "#Subtraction", 1)}} 。</p>
+
+<h4 id="语法_3">语法</h4>
+
+<pre class="syntaxbox"><strong>Operator:</strong> x -= y
+<strong>Meaning:</strong> x = x - y
+</pre>
+
+<h4 id="示例_3">示例</h4>
+
+<pre class="brush: js">// 假定已定义了下面的变量
+// bar = 5
+
+bar -= 2 // 3
+bar -= "foo" // NaN
+</pre>
+
+<h3 id="乘赋值(Multiplication_assignment)"><a name="Multiplication_assignment">乘赋值(Multiplication assignment)</a></h3>
+
+<p>乘赋值运算符使一个变量乘以右值,然后把相成的结果赋给该变量。更多细节查看 {{jsxref("Operators/Arithmetic_Operators", "multiplication operator", "#Multiplication", 1)}}。</p>
+
+<h4 id="语法_4">语法</h4>
+
+<pre class="syntaxbox"><strong>Operator:</strong> x *= y
+<strong>Meaning:</strong> x = x * y
+</pre>
+
+<h4 id="示例_4">示例</h4>
+
+<pre class="brush: js">// 假定已定义了下面的变量
+// bar = 5
+
+bar *= 2 // 10
+bar *= 'foo' // NaN
+</pre>
+
+<h3 id="除赋值(Division_assignment)"><a name="Division_assignment">除赋值(Division assignment)</a></h3>
+
+<p>除赋值运算符使一个变量除以右值,然后把结果赋给该变量。更多细节查看 {{jsxref("Operators/Arithmetic_Operators", "division operator", "#Division", 1)}}。</p>
+
+<h4 id="语法_5">语法</h4>
+
+<pre class="syntaxbox"><strong>Operator:</strong> x /= y
+<strong>Meaning:</strong> x = x / y
+</pre>
+
+<h4 id="示例_5">示例</h4>
+
+<pre class="brush: js">// 假定已定义了下面的变量
+// bar = 5
+
+bar /= 2 // 2.5
+bar /= "foo" // NaN
+bar /= 0 // Infinity
+</pre>
+
+<h3 id="模赋值(Remainder_assignment)"><a name="Remainder_assignment">模赋值(Remainder assignment)</a></h3>
+
+<p>模赋值运算符使一个变量除以右值,然后把余数赋给该变量。更多细节查看 {{jsxref("Operators/Arithmetic_Operators", "remainder operator", "#Remainder", 1)}}。</p>
+
+<h4 id="语法_6">语法</h4>
+
+<pre class="syntaxbox"><strong>Operator:</strong> x %= y
+<strong>Meaning:</strong> x = x % y
+</pre>
+
+<h4 id="示例_6">示例</h4>
+
+<pre class="brush: js">// Assuming the following variable
+// bar = 5
+
+bar %= 2 // 1
+bar %= 'foo' // NaN
+bar %= 0 // NaN
+</pre>
+
+<h3 id="指数赋值(Exponentiation_assignment)"><a id="Exponentiation_assignment" name="Exponentiation_assignment">指数赋值(Exponentiation assignment)</a></h3>
+
+<p>指数赋值运算符使一个变量为底数、以右值为指数的指数运算(乘方)结果赋给该变量。更多细节查看 {{jsxref("Operators/Arithmetic_Operators", "算术运算符", "#Exponentiation", 1)}}。</p>
+
+<h4 id="语法_7">语法</h4>
+
+<pre class="syntaxbox"><strong>语法:</strong> x **= y
+<strong>含义:</strong> x = x ** y
+</pre>
+
+<h4 id="示例_7">示例</h4>
+
+<pre class="brush: js">// Assuming the following variable
+// bar = 5
+
+bar **= 2 // 25
+bar **= 'foo' // NaN</pre>
+
+<h3 id="左移赋值(Left_shift_assignment)"><a name="Left_shift_assignment">左移赋值(Left shift assignment)</a></h3>
+
+<p>左移赋值运算符使变量向左移动指定位数的比特位,然后把结果赋给该变量。更多细节查看 {{jsxref("Operators/Bitwise_Operators", "left shift operator", "#Left_shift", 1)}}。</p>
+
+<h4 id="语法_8">语法</h4>
+
+<pre class="syntaxbox"><strong>Operator:</strong> x &lt;&lt;= y
+<strong>Meaning:</strong> x = x &lt;&lt; y
+</pre>
+
+<h4 id="示例_8">示例</h4>
+
+<pre class="brush: js">var bar = 5; // (00000000000000000000000000000101)
+bar &lt;&lt;= 2; // 20 (00000000000000000000000000010100)
+</pre>
+
+<h3 id="右移赋值(Right_shift_assignment)"><a name="Right_shift_assignment">右移赋值(Right shift assignment)</a></h3>
+
+<p>右移赋值运算符使变量向右移指定位数的比特位,然后把结果赋给该变量。更多细节查看 {{jsxref("Operators/Bitwise_Operators", "right shift operator", "#Right_shift", 1)}}。</p>
+
+<h4 id="语法_9">语法</h4>
+
+<pre class="syntaxbox"><strong>Operator:</strong> x &gt;&gt;= y
+<strong>Meaning:</strong> x = x &gt;&gt; y
+</pre>
+
+<h4 id="示例_9">示例</h4>
+
+<pre class="brush: js">var bar = 5; // (00000000000000000000000000000101)
+bar &gt;&gt;= 2; // 1 (00000000000000000000000000000001)
+
+var bar = -5; // (-00000000000000000000000000000101)
+bar &gt;&gt;= 2; // -2 (-00000000000000000000000000000010)
+</pre>
+
+<h3 id="无符号右移赋值(Unsigned_right_shift_assignment)"><a name="Unsigned_right_shift_assignment">无符号右移赋值(Unsigned right shift assignment)</a></h3>
+
+<p>无符号右移赋值运算符向右移动指定数量的比特位,然后把结果赋给变量。更多细节查看 {{jsxref("Operators/Bitwise_Operators", " unsigned right shift operator", "#Unsigned_right_shift", 1)}}。</p>
+
+<h4 id="语法_10">语法</h4>
+
+<pre class="syntaxbox"><strong>Operator:</strong> x &gt;&gt;&gt;= y
+<strong>Meaning:</strong> x = x &gt;&gt;&gt; y
+</pre>
+
+<h4 id="示例_10">示例</h4>
+
+<pre class="brush: js">var bar = 5; // (00000000000000000000000000000101)
+bar &gt;&gt;&gt;= 2; // 1 (00000000000000000000000000000001)
+
+var bar = -5; // (-00000000000000000000000000000101)
+bar &gt;&gt;&gt;= 2; // 1073741822 (00111111111111111111111111111110)</pre>
+
+<h3 id="按位与赋值(Bitwise_AND_assignment)"><a name="Bitwise_AND_assignment">按位与赋值(Bitwise AND assignment)</a></h3>
+
+<p>按位与赋值运算符使用两个操作值的二进制表示,执行按位与运算,并把结果赋给变量。更多细节查看 {{jsxref("Operators/Bitwise_Operators", "bitwise AND operator", "#Bitwise_AND", 1)}}。</p>
+
+<h4 id="语法_11">语法</h4>
+
+<pre class="syntaxbox"><strong>Operator:</strong> x &amp;= y
+<strong>Meaning:</strong> x = x &amp; y
+</pre>
+
+<h4 id="示例_11">示例</h4>
+
+<pre class="brush: js">var bar = 5;
+// 5: 00000000000000000000000000000101
+// 2: 00000000000000000000000000000010
+bar &amp;= 2; // 0
+</pre>
+
+<h3 id="按位异或赋值(Bitwise_XOR_assignment)"><a name="Bitwise_XOR_assignment">按位异或赋值(Bitwise XOR assignment)</a></h3>
+
+<p>按位异或赋值运算符使用两个操作值的二进制表示,执行二进制异或运算,并把结果赋给变量。更多细节查看 {{jsxref("Operators/Bitwise_Operators", "bitwise XOR operator", "#Bitwise_XOR", 1)}}。</p>
+
+<h4 id="语法_12">语法</h4>
+
+<pre class="syntaxbox"><strong>Operator:</strong> x ^= y
+<strong>Meaning:</strong> x = x ^ y
+</pre>
+
+<h4 id="示例_12">示例</h4>
+
+<pre class="brush: js">var bar = 5;
+bar ^= 2; // 7
+// 5: 00000000000000000000000000000101
+// 2: 00000000000000000000000000000010
+// -----------------------------------
+// 7: 00000000000000000000000000000111
+</pre>
+
+<h3 id="按位或赋值(Bitwise_OR_assignment)"><a name="Bitwise_OR_assignment">按位或赋值(Bitwise OR assignment)</a></h3>
+
+<p>按位或赋值运算符使用两个操作值的二进制表示,执行按位或运算,并把结果赋给变量。更多细节查看 {{jsxref("Operators/Bitwise_Operators", "bitwise OR operator", "#Bitwise_OR", 1)}}。</p>
+
+<h4 id="语法_13">语法</h4>
+
+<pre class="syntaxbox"><strong>Operator:</strong> x |= y
+<strong>Meaning:</strong> x = x | y
+</pre>
+
+<h4 id="示例_13">示例</h4>
+
+<pre class="brush: js">var bar = 5;
+bar |= 2; // 7
+// 5: 00000000000000000000000000000101
+// 2: 00000000000000000000000000000010
+// -----------------------------------
+// 7: 00000000000000000000000000000111
+</pre>
+
+<h2 id="示例_14">示例</h2>
+
+<h3 id="带有赋值运算符的左值(Left_operand)">带有赋值运算符的左值(Left operand)</h3>
+
+<p>在某些不常见的情况下,赋值运算符(如<code> x += y</code>)并不等同于表达式( <code>x = x + y</code>)。当一个赋值运算符的左值包含有一个赋值运算符时,左值只会被求值一次。例如:</p>
+
+<pre class="brush: js">a[i++] += 5 // i 执行一次求值
+a[i++] = a[i++] + 5 // i 执行两次求值
+</pre>
+
+<h2 id="规范">规范</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comment</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-assignment-operators', 'Assignment operators')}}</td>
+ <td>{{Spec2('ESDraft')}}</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES2015', '#sec-assignment-operators', 'Assignment operators')}}</td>
+ <td>{{Spec2('ES2015')}}</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES5.1', '#sec-11.13', 'Assignment operators')}}</td>
+ <td>{{Spec2('ES5.1')}}</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES1', '#sec-11.13', 'Assignment operators')}}</td>
+ <td>{{Spec2('ES1')}}</td>
+ <td>Initial definition.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="浏览器兼容性">浏览器兼容性</h2>
+
+<div class="hidden">该兼容表是由结构化数据生成。如果你愿意贡献数据,请克隆仓库 <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> 并提交 pull request.</div>
+
+<p>{{Compat("javascript.operators.assignment")}}</p>
+
+<h2 id="相关链接">相关链接</h2>
+
+<ul>
+ <li><a href="/zh-CN/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators">算术运算符</a></li>
+</ul>