By GokiSoft.Com| 09:50 20/05/2020|
Tài Liệu Javascript

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ạngToá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ênperson.name
19[]Thành viênperson["name"]
19()Gọi hàmmyFunction()
19newTanew 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)
16typeofKiểutypeof x
    
15**Lũy thừa (ES2016)10 ** 2
    
14*Nhân10 * 5
14/Chia10 / 5
14%Chia lấy dư10 % 5
    
13+Cộng10 + 5
13-Trừ10 - 5
    
12<<Dịch sang tráix << 2
12>>Dịch sang phải
x >> 2
12>>>Dịch sang phải (không dấu)
x >>> 2
    
11<Bé hơnx < y 
11<=Bé hơn hoặc bằngx <= y
11>Lớn hơnx > y
11>=Lớn hơn hoặc bằng
x >= y
11inProperty trong Object"PI" in Math
11instanceofInstance cua Objectinstanceof Array
    
10==Bằngx == y
10===Bằng chặt chẽx === y
10!=Không bằngx != y
10!==Không bằng chặt chẽx !== y
    
9&Bitwise ANDx & y
8^Bitwise XORx ^ y
7|Bitwise ORx | y
6&&Logical ANDx && y
5||Logical ORx || y
4? :Điều kiện? "Yes" : "No"
    
3+=Gánx += 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
    
2yieldDừng hàmyield x
1,Phẩy5 , 6