JavaScript Arithmetic - Số học trong JavaScript
JavaScript Arithmetic Operators
Các toán tử số học thể hiện các phép toán trên chữ số (các giá trị cố định hoặc các biến).
Toán tử | Mô tả |
---|---|
+ | Cộng |
- | Trừ |
* | Nhân |
** | Lũy thừa (ES2016) |
/ | Chia |
% | Chia lấy số dư |
++ | Tăng |
-- | Giảm |
Các toán tử số học(Arithmetic Operations)
Một toán tử số học điển hình hoạt động trên hai số.
Hai số có thể là số gốc:
ví dụ
var x = 100 + 50;
<!DOCTYPE html>
<html>
<body>
<p>A typical arithmetic operation takes two numbers and produces a new number.</p>
<p id="demo"></p>
<script>
var x = 100 + 50;
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
Hoặc là hai biến:
ví dụ
var x = a + b;
<!DOCTYPE html>
<html>
<body>
<p>A typical arithmetic operation takes two numbers (or variables) and produces a new number.</p>
<p id="demo"></p>
<script>
var a = 100;
var b = 50;
var x = a + b;
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
Hoặc là biểu thức:
ví dụ
var x = (100 + 50) * a;
<!DOCTYPE html>
<html>
<body>
<p>A typical arithmetic operation takes two numbers (or expressions) and produces a new number.</p>
<p id="demo"></p>
<script>
var a = 3;
var x = (100 + 50) * a;
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
Các toán tử và các toán hạng(Operators and Operands)
Các số (trong một phép toán) gọi là các toán hạng.
Sự tính toán (được thể hiện giữa hai toán hạng) được xác định bằng một toán tử.
Toán hạng | Toán tử | Toán hạng |
---|---|---|
100 | + | 50 |
Cộng(Adding)
Toán tử cộng (+
) cộng các chữ số:
ví dụ
var x = 5;
var y = 2;
var z = x + y;
<!DOCTYPE html>
<html>
<body>
<h2>The + Operator</h2>
<p id="demo"></p>
<script>
var x = 5;
var y = 2;
var z = x + y;
document.getElementById("demo").innerHTML = z;
</script>
</body>
</html>
Trừ(Subtracting)
Toán tử trừ (-
) trừ các chữ số.
ví dụ
var x = 5;
var y = 2;
var z = x - y;
<!DOCTYPE html>
<html>
<body>
<h2>The - Operator</h2>
<p id="demo"></p>
<script>
var x = 5;
var y = 2;
var z = x - y;
document.getElementById("demo").innerHTML = z;
</script>
</body>
</html>
Nhân(Multiplying)
Toán tử nhân (*
) nhân các chữ số:
ví dụ
var x = 5;
var y = 2;
var z = x * y;
<!DOCTYPE html>
<html>
<body>
<h2>The * Operator</h2>
<p id="demo"></p>
<script>
var x = 5;
var y = 2;
var z = x * y;
document.getElementById("demo").innerHTML = z;
</script>
</body>
</html>
Chia(Dividing)
Toán tử chia (/
) chia các chữ số:
ví dụ
var x = 5;
var y = 2;
var z = x / y;
<!DOCTYPE html>
<html>
<body>
<h2>The / Operator</h2>
<p id="demo"></p>
<script>
var x = 5;
var y = 2;
var z = x / y;
document.getElementById("demo").innerHTML = z;
</script>
</body>
</html>
Lấy dư(Remainder)
Toán tử chia lấy dư (%
) trả về phần bị dư khi chia.
ví dụ
var x = 5;
var y = 2;
var z = x % y;
<!DOCTYPE html>
<html>
<body>
<h2>The % Operator</h2>
<p id="demo"></p>
<script>
var x = 5;
var y = 2;
var z = x % y;
document.getElementById("demo").innerHTML = z;
</script>
</body>
</html>
Tip: Trong số học, phép chia của hai số nguyên cho ra một thương và một số dư.
Trong lập trình, kết quả của toán tử lấy dư là phần dư của phép chia.
Tăng(Incrementing)
Toán tử tăng (++
) tăng các chữ số.
ví dụ
var x = 5;
x++;
var z = x;
<!DOCTYPE html>
<html>
<body>
<h2>The ++ Operator</h2>
<p id="demo"></p>
<script>
var x = 5;
x++;
var z = x;
document.getElementById("demo").innerHTML = z;
</script>
</body>
</html>
Giảm(Decrementing)
Toán tử giảm (--
) giảm các chữ số.
ví dụ
var x = 5;
x--;
var z = x;
<!DOCTYPE html>
<html>
<body>
<h2>The -- Operator</h2>
<p id="demo"></p>
<script>
var x = 5;
x--;
var z = x;
document.getElementById("demo").innerHTML = z;
</script>
</body>
</html>
Exponentiation
Toán tử lũy thừa (**
) nhân lên toán hạng đầu tiên bằng giá trị toán hạng thứ hai.
ví dụ
var x = 5;
var z = x ** 2;
<!DOCTYPE html>
<html>
<body>
<h2>The ** Operator</h2>
<p id="demo"></p>
<script>
var x = 5;
document.getElementById("demo").innerHTML = x ** 2;
</script>
</body>
</html>
x ** y cho ra cùng một kết quả với Math.pow(x,y)
:
ví dụ
var x = 5;
var z = Math.pow(x,2); // result is 25
<!DOCTYPE html>
<html>
<body>
<h2>Math.pow()</h2>
<p id="demo"></p>
<script>
var x = 5;
document.getElementById("demo").innerHTML = Math.pow(x,2);
</script>
</body>
</html>
Sự ưu tiên toán tử(Operator Precedence)
Sự ưu tiên các toán tử thể hiện thứ tự mỗi phép tính được thực hiện trong một biểu thức toán học.
ví dụ
var x = 100 + 50 * 3;
<!DOCTYPE html>
<html>
<body>
<p>Multiplication has precedence over addition.</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = 100 + 50 * 3;
</script>
</body>
</html>
Có phải kết quả của ví dụ trên giống với 150 * 3, hay nó giống với 100 + 150?
Có phải phép cộng hay phép nhân được hoàn thành trước?
Trong toán học truyền thống, phép nhân được tính trước.
Sự nhân (*
) và chia (/
) có thứ tự ưu tiên cao hơn là cộng (+
) và trừ (-
).
Và (như trong toán học) sự ưu tiên có thể được thay đổi bằng việc dùng ngoặc đơn.
ví dụ
var x = (100 + 50) * 3;
<!DOCTYPE html>
<html>
<body>
<p>Multiplication has precedence over addition.</p>
<p>But parenthesis has precedence over multiplication.</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = (100 + 50) * 3;
</script>
</body>
</html>
Khi sử dụng dấu ngoặc đơn, các toán tử bên trong dấu ngoặc đơn được tính toán trước.
Khi có nhiều toán tử có cùng một mức độ ưu tiên(như cộng và trừ), chúng được tính toán từ trái sang phải.
ví dụ
var x = 100 + 50 - 3;
<!DOCTYPE html>
<html>
<body>
<p>When many operations has the same precedence, they are computed from left to right.</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = 100 + 50 - 3;
</script>
</body>
</html>
Các giá trị ưu tiên của toán tử trong JavaScript(JavaScript Operator Precedence Values)
Tip: Các mục màu đỏ nhạt cho biết ECMAScript 2015(ES6) hoặc cao hơn.
Giá trị | Toán tử | Mô tả | Ví dụ |
---|---|---|---|
20 | ( ) | Nhóm biểu thức | (3 + 4) |
19 | . | Thành viên | person.name |
19 | [] | Thành viên | person["name"] |
19 | () | Gọi hàm | myFunction() |
19 | new | Ta | new Date() |
17 | ++ | Tăng tiền tố | i++ |
17 | -- | Giảm tiền tố | i-- |
16 | ++ | Tiền tố tăng | ++i |
16 | -- | Tiền tố giảm | --i |
16 | ! | Logic phủ định | !(x==y) |
16 | typeof | Kiểu | typeof x |
15 | ** | Lũy thừa (ES2016) | 10 ** 2 |
14 | * | Nhân | 10 * 5 |
14 | / | Chia | 10 / 5 |
14 | % | Chia lấy dư | 10 % 5 |
13 | + | Cộng | 10 + 5 |
13 | - | Trừ | 10 - 5 |
12 | << | Dịch sang trái | x << 2 |
12 | >> | Dịch sang phải | x >> 2 |
12 | >>> | Dịch sang phải (không dấu) | x >>> 2 |
11 | < | Bé hơn | x < y |
11 | <= | Bé hơn hoặc bằng | x <= y |
11 | > | Lớn hơn | x > y |
11 | >= | Lớn hơn hoặc bằng | x >= y |
11 | in | Property trong Object | "PI" in Math |
11 | instanceof | Instance cua Object | instanceof Array |
10 | == | Bằng | x == y |
10 | === | Bằng chặt chẽ | x === y |
10 | != | Không bằng | x != y |
10 | !== | Không bằng chặt chẽ | x !== y |
9 | & | Bitwise AND | x & y |
8 | ^ | Bitwise XOR | x ^ y |
7 | | | Bitwise OR | x | y |
6 | && | Logical AND | x && y |
5 | || | Logical OR | x || y |
4 | ? : | Điều kiện | ? "Yes" : "No" |
3 | += | Gán | x += y |
3 | /= | Gán | x /= y |
3 | -= | Gán | x -= y |
3 | *= | Gán | x *= y |
3 | %= | Gán | x %= y |
3 | <<= | Gán | x <<= y |
3 | >>= | Gán | x >>= y |
3 | >>>= | Gán | x >>>= y |
3 | &= | Gán | x &= y |
3 | ^= | Gán | x ^= y |
3 | |= | Gán | x |= y |
2 | yield | Dừng hàm | yield x |
1 | , | Phẩy | 5 , 6 |
Tags:
Phản hồi từ học viên
5
(Dựa trên đánh giá ngày hôm nay)