diff options
Diffstat (limited to 'files/vi/web/javascript/reference/operators')
-rw-r--r-- | files/vi/web/javascript/reference/operators/arithmetic_operators/index.html | 313 |
1 files changed, 0 insertions, 313 deletions
diff --git a/files/vi/web/javascript/reference/operators/arithmetic_operators/index.html b/files/vi/web/javascript/reference/operators/arithmetic_operators/index.html deleted file mode 100644 index 302c6633c6..0000000000 --- a/files/vi/web/javascript/reference/operators/arithmetic_operators/index.html +++ /dev/null @@ -1,313 +0,0 @@ ---- -title: Toán tử số học -slug: Web/JavaScript/Reference/Operators/Arithmetic_Operators -translation_of: Web/JavaScript/Reference/Operators -translation_of_original: Web/JavaScript/Reference/Operators/Arithmetic_Operators ---- -<div>{{jsSidebar("Operators")}}</div> - -<p><strong>Toán tử số học</strong> lấy giá trị số học (cả chuỗi hoặc biến) làm toán hạng của nó và trả về một giá trị số học. Các toán tử số học thông thường là cộng (+), trừ (-), nhân (*), và chia (/).</p> - -<div>{{EmbedInteractiveExample("pages/js/expressions-arithmetic.html")}}</div> - -<p class="hidden">Mã nguồn cho các ví dụ tương tác trong bài được lưu trên GitHub. Nếu bạn muốn đóng góp thêm ví dụ tương tác, làm ơn <em>clone</em> lại <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> và gửi cho chúng tôi một <em>pull request</em>.</p> - -<h2 id="Cộng_()"><a name="Addition">Cộng (+)</a></h2> - -<p>Toán tử cộng xuất ra tổng của toán hạng số học hoặc để nối chuỗi.</p> - -<h3 id="Cú_pháp">Cú pháp</h3> - -<pre class="syntaxbox"><strong>Toán tử:</strong> x + y -</pre> - -<h3 id="Examples">Examples</h3> - -<pre class="brush: js">// Number + Number -> addition -1 + 2 // 3 - -// Boolean + Number -> addition -true + 1 // 2 - -// Boolean + Boolean -> addition -false + false // 0 - -// Number + String -> concatenation -5 + 'foo' // "5foo" - -// String + Boolean -> concatenation -'foo' + false // "foofalse" - -// String + String -> concatenation -'foo' + 'bar' // "foobar" -</pre> - -<h2 id="Trừ_(-)"><a name="Subtraction">Trừ (-)</a></h2> - -<p>Toán tử trừ thực hiện trừ hai toán hạng, xuất ra chênh lệch giữa chúng.</p> - -<h3 id="Cú_pháp_2">Cú pháp</h3> - -<pre class="syntaxbox"><strong>Toán tử:</strong> x - y -</pre> - -<h3 id="Ví_dụ">Ví dụ</h3> - -<pre class="brush: js">5 - 3 // 2 -3 - 5 // -2 -'foo' - 3 // NaN</pre> - -<h2 id="Chia_()"><a name="Division">Chia (/)</a></h2> - -<p>Toán tử chia xuất ra thương của phép chia với toán hạng bên trái là số bị chia và toán hạng bên phải là số chia.</p> - -<h3 id="Cú_pháp_3">Cú pháp</h3> - -<pre class="syntaxbox"><strong>Toán tử:</strong> x / y -</pre> - -<h3 id="Ví_dụ_2">Ví dụ</h3> - -<pre class="brush: js">1 / 2 // trả về 0.5 trong JavaScript -1 / 2 // trả về 0 trong Java -// (neither number is explicitly a floating point number) - -1.0 / 2.0 // ?trả về 0.5 trong cả JavaScript lẫn Java - -2.0 / 0 // ?trả về Infinity trong JavaScript -2.0 / 0.0 // cũng trả về Infinity -2.0 / -0.0 // trả về -Infinity trong JavaScript</pre> - -<h2 id="Nhân_(*)"><a name="Multiplication">Nhân (*)</a></h2> - -<p>Toán tử nhân xuất ra tích của các toán hạng.</p> - -<h3 id="Cú_pháp_4">Cú pháp</h3> - -<pre class="syntaxbox"><strong>Toán tử:</strong> x * y -</pre> - -<h3 id="Ví_dụ_3">Ví dụ</h3> - -<pre class="brush: js">2 * 2 // 4 --2 * 2 // -4 -Infinity * 0 // NaN -Infinity * Infinity // Infinity -'foo' * 2 // NaN -</pre> - -<h2 id="Chia_lấy_dư_()"><a name="Remainder">Chia lấy dư (%)</a></h2> - -<p>Toán tử chia lấy dư trả về phần dư khi toán hạng thứ nhất chia cho toán hạng thứ hai. Dấu của kết quả luôn cùng dấu với số bị chia.</p> - -<h3 id="Cú_pháp_5">Cú pháp</h3> - -<pre class="syntaxbox"><strong>Toán tử:</strong> var1 % var2 -</pre> - -<h3 id="Ví_dụ_4">Ví dụ</h3> - -<pre class="brush: js">12 % 5 // 2 --1 % 2 // -1 -1 % -2 // 1 -NaN % 2 // NaN -1 % 2 // 1 -2 % 3 // 2 --4 % 2 // -0 -5.5 % 2 // 1.5 -</pre> - -<h2 id="Luỹ_thừa_(**)"><a name="Exponentiation">Luỹ thừa (**)</a></h2> - -<p>Toán tử luỹ thừa trả về kết quả là luỹ thừa bậc là toán hạng thứ hai của toán hạng thứ nhất, tức là, <code>var1</code><sup><code>var2</code></sup>, như đã khẳng định trước đó, với <code>var1</code> và <code>var2</code> là biến số. Toán tử luỹ thừa là dạng liên hợp phải. <code>a ** b ** c</code> bằng với <code>a ** (b ** c)</code>.</p> - -<h3 id="Cú_pháp_6">Cú pháp</h3> - -<pre class="syntaxbox"><strong>Toán tử:</strong> var1 ** var2 -</pre> - -<h3 id="Ghi_chú">Ghi chú</h3> - -<p>Trong hầu hết các ngôn ngữ như PHP và Python và một số khác mà có toán tử luỹ thừa (**), toán tử luỹ thừa được định nghĩa là có độ ưu tiên cao hơn toán tử một ngôi như là toán tử + một ngôi và toán tử - một ngôi, nhưng cũng có vài ngoại lệ. Chẳng hạn, trong Bash, toán tử ** được định nghĩa là có độ ưu tiên thấp hơn toán tử một ngôi. Trong JavaScript, hoàn toàn có thể viết một biểu thức luỹ thừa nhập nhằng, như là bạn không thể đặt toán tử một ngôi (<code>+/-/~/!/delete/void/typeof</code>) ngay trước cơ số.</p> - -<pre class="brush: js">-2 ** 2; -// 4 trong Bash, -4 trong các ngôn ngữ khác. -// Không hợp lệ trong JavaScript, vì toán tử không nhập nhằng. - - --(2 ** 2); -// -4 trong JavaScript và ý định của tác giả không nhập nhằng. -</pre> - -<h3 id="Ví_dụ_5">Ví dụ</h3> - -<pre class="brush: js">2 ** 3 // 8 -3 ** 2 // 9 -3 ** 2.5 // 15.588457268119896 -10 ** -1 // 0.1 -NaN ** 2 // NaN - -2 ** 3 ** 2 // 512 -2 ** (3 ** 2) // 512 -(2 ** 3) ** 2 // 64 -</pre> - -<p>To invert the sign of the result of an exponentiation expression:</p> - -<pre class="brush: js">-(2 ** 2) // -4 -</pre> - -<p>Để ép cơ số trong biểu thức luỹ thừa thành số âm:</p> - -<pre class="brush: js">(-2) ** 2 // 4 -</pre> - -<div class="note"> -<p><strong>Ghi chú:</strong> JavaScript cũng có <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Bitwise_XOR"> toán tử thao tác bit ^ (XOR)</a>. <code>**</code> và <code>^</code> khác nhau (chẳng hạn: <code>2 ** 3 === 8</code> trong khi <code>2 ^ 3 === 1</code>.)</p> -</div> - -<p> </p> - -<h2 id="Tăng_()"><a name="Increment">Tăng (++)</a></h2> - -<p> </p> - -<p>Toán tử tăng tăng (thêm một vào) toán hạng của nó và trả về một giá trị.</p> - -<ul> - <li>Nếu dùng như hậu tố, toán tử ở sau toán hạng (chẳng hạn, x++), thí nó trả về giá trị trước khi tăng.</li> - <li>Nếu dùng như tiền tố, toán tử ở trước toán hạng (chẳng hạn, ++x), thí nó trả về giá trị sau khi tăng.</li> -</ul> - -<h3 id="Cú_pháp_7">Cú pháp</h3> - -<pre class="syntaxbox"><strong>Toán tử:</strong> x++ hoặc ++x -</pre> - -<h3 id="Ví_dụ_6">Ví dụ</h3> - -<pre class="brush: js">// Hậu tố -var x = 3; -y = x++; // y = 3, x = 4 - -// Tiền tố -var a = 2; -b = ++a; // a = 3, b = 3 -</pre> - -<h2 id="Giảm_(--)"><a name="Decrement">Giảm (--)</a></h2> - -<p>Toán tử giảm giảm (bớt một khỏi) toán hạng của nó và trả về một giá trị.</p> - -<ul> - <li>Nếu dùng như hậu tố (chẳng hạn, x--), thì nó trả về giá trị trước khi giảm.</li> - <li>Nếu dùng như tiền tố (chẳng hạn, --x), thì nó trả về giá trị sau khi giảm.</li> -</ul> - -<h3 id="Cú_pháp_8">Cú pháp</h3> - -<pre class="syntaxbox"><strong>Toán tử:</strong> x-- hoặc --x -</pre> - -<h3 id="Ví_dụ_7">Ví dụ</h3> - -<pre class="brush: js">// Hậu tố -var x = 3; -y = x--; // y = 3, x = 2 - -// Tiền tố -var a = 2; -b = --a; // a = 1, b = 1 -</pre> - -<h2 id="Phủ_định_một_ngôi_(-)"><a name="Unary_negation">Phủ định một ngôi (-)</a></h2> - -<p>Toán tử phủ định một ngôi đứng trước và phủ định toán hạng của nó.</p> - -<h3 id="Cú_pháp_9">Cú pháp</h3> - -<pre class="syntaxbox"><strong>Toán tử:</strong> -x -</pre> - -<h3 id="Ví_dụ_8">Ví dụ</h3> - -<pre class="brush: js">var x = 3; -y = -x; // y = -3, x = 3 - -//toán tử phủ định một ngôi có thể chuyển giá-trị-không-phải-kiểu-số về dạng số học -var x = "4"; -y = -x; // y = -4 -</pre> - -<h2 id="Cộng_một_ngôi_()"><a name="Unary_plus">Cộng một ngôi (+)</a></h2> - -<p>Toán tử cộng một ngôi đứng trước và định lượng toán hạng của nó nhưng cố gắng chuyển kiểu cho toán hạng sang dạng số, nếu ban đầu không phải ở dạng đó. Mặc dù toán tử phủ định một ngôi (-) cũng có thể chuyển kiểu như vậy, nhưng toán tử cộng một ngôi lại nhanh nhất và được dùng ưu tiên dùng nhiều hơn khi phải chuyển đổi kiểu dữ liệu về dạng số, bởi vì nó không thực hiện bất cứ phép toán nào khác trên số. Nó có thể chuyển kiểu từ biểu diễn dạng chuỗi của số nguyên hoặc số thực, thậm chí cả các giá trị không phải số như <code>true</code>, <code>false</code>, và <code>null</code>. Số thực ở dạng thập phân và bát phân (tiền tố - "0x") đều được hỗ trợ. Đồng thời hỗ trợ cả số âm (trừ số âm dạng bát phân). Nếu nó không thể truyền đúng dữ liệu đã định, nó sẽ định lượng thành <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN">NaN</a>.</p> - -<h3 id="Cú_pháp_10">Cú pháp</h3> - -<pre class="syntaxbox"><strong>Toán tử:</strong> +x -</pre> - -<h3 id="Ví_dụ_9">Ví dụ</h3> - -<pre class="brush: js">+3 // 3 -+'3' // 3 -+true // 1 -+false // 0 -+null // 0 -+function(val){ return val } // NaN -</pre> - -<h2 id="Đặc_tả">Đặc tả</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Đặc tả</th> - <th scope="col">Trạng thái</th> - <th scope="col">Bình luận</th> - </tr> - <tr> - <td>{{SpecName('ES1')}}</td> - <td>{{Spec2('ES1')}}</td> - <td>Initial definition.</td> - </tr> - <tr> - <td>{{SpecName('ES5.1', '#sec-11.3')}}</td> - <td>{{Spec2('ES5.1')}}</td> - <td>Defined in several sections of the specification: <a href="http://www.ecma-international.org/ecma-262/5.1/#sec-11.6">Additive operators</a>, <a href="http://www.ecma-international.org/ecma-262/5.1/#sec-11.5">Multiplicative operators</a>, <a href="http://www.ecma-international.org/ecma-262/5.1/#sec-11.3">Postfix expressions</a>, <a href="http://www.ecma-international.org/ecma-262/5.1/#sec-11.4">Unary operators</a>.</td> - </tr> - <tr> - <td>{{SpecName('ES2015', '#sec-postfix-expressions')}}</td> - <td>{{Spec2('ES2015')}}</td> - <td>Defined in several sections of the specification: <a href="http://www.ecma-international.org/ecma-262/6.0/#sec-additive-operators">Additive operators</a>, <a href="http://www.ecma-international.org/ecma-262/6.0/#sec-multiplicative-operators">Multiplicative operators</a>, <a href="http://www.ecma-international.org/ecma-262/6.0/#sec-postfix-expressions">Postfix expressions</a>, <a href="http://www.ecma-international.org/ecma-262/6.0/#sec-unary-operators">Unary operators</a>.</td> - </tr> - <tr> - <td>{{SpecName('ES2016', '#sec-postfix-expressions')}}</td> - <td>{{Spec2('ES2016')}}</td> - <td>Added <a href="https://github.com/rwaldron/exponentiation-operator">Exponentiation operator</a>.</td> - </tr> - <tr> - <td>{{SpecName('ES2017', '#sec-postfix-expressions')}}</td> - <td>{{Spec2('ES2017')}}</td> - <td> </td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-additive-operators')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Tương_thích_trình_duyệt">Tương thích trình duyệt</h2> - - - -<p>{{Compat("javascript.operators.arithmetic")}}</p> - -<h2 id="Đọc_thêm">Đọc thêm</h2> - -<ul> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators">Toán tử gán</a></li> -</ul> |