Trong toán học chúng ta đã được học các phép toán: cộng +, trừ -, nhân *, chia / các phép toán này dùng để xác định cụ thể kiểu tính toán mà bạn muốn thực hiện trên các thành phần (toán hạng) của một công thức hay một biểu thức. Trong lập trình cũng thế, chúng cũng có những toán tử như thế, ngoài ra còn có thêm những toán tử khác. Trong bài này chúng ta sẽ cùng tìm hiểu xem toán tử là gì, các toán tử trong JavaScript và thứ tự ưu tiên của các toán tử trong javascript
Toán tử là gì?
Chúng ta xem biểu thức đơn giản sau: 4 + 5 = 9. Tại đây 4 và 5 là các toán hạng và ‘+’ được gọi là toán tử. Trong ngôn ngữ lập trình JavaScript hỗ trợ các kiểu toán tử sau:
- Toán tử số học
- Toán tử so sánh
- Toán tử logic (hoặc quan hệ)
- Toán tử gán
- Toán tử điều kiện
Toán tử số học
JavaScript hỗ trợ các kiểu toán tử số học sau:
Toán tử | Mô tả | Ví dụ |
---|---|---|
+ | phép cộng | 25 + 5 = 30 |
- | phép trừ | 10 – 5 = 5 |
* | phép nhân | 2*3 = 6 |
/ | phép chia | 20 / 2 = 10 |
% | lấy phần dư của phép chia | 56 / 3 = 2 |
++ | Tăng thêm 1 | var a = 10; a ++; //giá trị a là 11 |
-- | giảm đi 1 | var a = 10; a –; //giá trị a là 9 |
Lưu ý − Toán hạng cộng (+) làm việc với các số cũng như các chuỗi, ví dụ: “a” + 10 sẽ cho kết quả là “a10”.
STT | Toán tử và Miêu tả |
---|---|
1 | + (Phép cộng)Cộng hai toán hạngEx: A + B sẽ cho kết quả là 30 |
2 | – (Phép trừ)Trừ toán hạng thứ hai từ toán hạng đầu.Ex: A – B sẽ cho kết quả là -10 |
3 | * (Phép nhân)Nhân hai toán hạngEx: A * B sẽ cho kết quả là 200 |
4 | / (Phép chia)Chia số chia cho số bị chiaEx: B / A sẽ cho kết quả là 2 |
5 | % (Phép chia lấy phần dư)Kết quả là phần dư của phép chia.Ex: B % A sẽ cho kết quả là 0 |
6 | ++ (Tăng lên 1)Tăng giá trị integer lên 1Ex: A++ sẽ cho kết quả là 11 |
7 | — (Giảm đi 1)Giảm một giá trị integer đi mộtEx: A– sẽ cho kết quả là 9 |
Toán tử gán
Toán tử gán được dùng để gán giá trị ở bên phải toán tử vào biến ở bên trái toán tử. Có các toán tử gán sau:
Toán tử | Ví dụ | Ý nghĩa |
---|---|---|
= | x = y | gán y vào x |
+= | x += y | x = x + y |
-= | x -= y | x = x – y |
*= | x *= y | x = x * y |
/= | x /= y | x = x / y |
%= | x %= y | x = x % y |
Hãy thử ví dụ sau đây:
<!DOCTYPE html>
<html>
<body>
<h2>The += Operator</h2>
<p id="demo"></p>
<script>
var x = 10;
x += 5;
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
Toán tử so sánh
Toán tử so sánh sử dụng trong các biểu thức về logic để so sánh bằng nhau, khác nhau. Nó trả về giá trị true
false
JavaScript có một số toán tử so sánh, ví dụ so sánh bằng: ==
Bảng toán tử so sánh
Toán tử | Diễn tả | Ví dụ |
---|---|---|
== | so sánh bằng | 5 == 10 false |
=== | giống nhau (cùng giá trị và kiểu dữ liệu) | 5 === 10 false |
!= | khác giá trị | 5 != 10 true |
!== | Khác giá trị và kiểu | 10 !== 10 false |
> | lớn hơn | 10 > 5 true |
>= | lớn hơn hoặc bằng | 10 >= 5 true |
< | nhỏ hơn | 10 < 5 false |
<= | nhỏ hơn | 10 <= 5 false |
Khi sử dụng các toán tử này, hãy chắc chắn các số hạng có cùng kiểu; số so sánh với số; chuỗi so sánh với chuỗi …
Toán tử logic
Bảng toán tử logic gồm các phép toán : và - hoặc - phủ định
Toán tử | Diễn tả |
---|---|
&& | phép và trả về true nếu 2 số hạng là true : a && b |
|| | phép hoặc trả về true nếu 1 trong 2 số hạng là true : a || b |
! | phủ định; trả về giá trị ngược với biểu thức !a |
Toán tử điều kiện
variable = (condition) ? value1: value2; Nhận giá trị value1 nếu điều kiện là đúng (true), nhận value2 nếu điều kiện sai (false)
Hãy thử ví dụ sau:
<html>
<body>
<script>
var a = 10;
var b = 20;
var linebreak = "<br />";
document.write ("((a > b) ? Đúng : Sai) => ");
result = (a > b) ? "Đúng" : "Sai";
document.write(result);
document.write(linebreak);
document.write ("((a < b) ? Đúng : Sai) => ");
result = (a < b) ? "Đúng" : "Sai";
document.write(result);
document.write(linebreak);
</script>
<p>Hãy thiết lập các giá trị khác cho biến và thử lại để hiểu hơn...</p>
</body>
</html>
Toán tử với chuỗi
Toán tử với chuỗi sử dụng nhiều là nối hai chuỗi lại với nhau, sử dụng toán tử +
để nối.
Hãy thử ví dụ sau:
<html>
<body>
<h2>Toán tử chuỗi trong Javascript</h2>
<p>Dùng phép + để nối 2 chuỗi lại với nhau.</p>
<script>
let text1 = "Hello!";
let text2 = "I'm Wecode";
let text3 = text1 + " " + text2;
document.write(text3);
</script>
</body>
</html>
Bạn có thể dùng toán tử + để nối chuỗi với số. Hãy thử ví dụ dưới đây
<html>
<body>
<h2>Toán tử chuỗi trong Javascript</h2>
<p>Thêm một số hoặc 1 chuỗi vào chuỗi sẽ nhận được 1 chuỗi mới</p>
<p id="demo"></p>
<script>
let x = 5 + 5;
let y = "5" + 5;
let z = "Hello" + 5;
document.write(x + "<br>" + y + "<br>" + z);
</script>
</body>
</html>
Toán tử loại (typeof) trong JavaScript
Toán tử typeof là một toán tử một ngôi mà nó được đặt trước toán hạng (bất cứ kiểu dữ liệu nào). Nó trả về kiểu dữ liệu của toán hạng.
Dưới đây là danh sách các giá trị trả về cho toán tử typeof.
Kiểu | Chuỗi trả về bởi toán tử typeof |
---|---|
Number | “number” |
String | “string” |
Boolean | “boolean” |
Object | “object” |
Hàm | “function” |
Undefined | “undefined” |
Null | “object” |
Hãy thử ví dụ dưới đây:
<html>
<body>
<script>
var a = 10;
var b = "String";
var linebreak = "<br />";
result = (typeof b == "string" ? "B is String" : "B is Numeric");
document.write("Result => ");
document.write(result);
document.write(linebreak);
result = (typeof a == "string" ? "A is String" : "A is Numeric");
document.write("Result => ");
document.write(result);
document.write(linebreak);
</script>
<p>Hãy thiết lập các giá trị khác cho biến và thử lại để hiểu hơn...</p>
</body>
</html>
Toán tử Bitwise JavaScript
Toán tử bit hoạt động trên số 32 bit.Bất kỳ toán hạng số nào trong phép toán đều được chuyển đổi thành số 32 bit. Kết quả được chuyển đổi lại thành một số JavaScript.
Operator | Description | Example | Same as | Result | Decimal |
---|---|---|---|---|---|
& | AND | 5 & 1 | 0101 & 0001 | 0001 | 1 |
| | OR | 5 | 1 | 0101 | 0001 | 0101 | 5 |
~ | NOT | ~ 5 | ~0101 | 1010 | 10 |
^ | XOR | 5 ^ 1 | 0101 ^ 0001 | 0100 | 4 |
<< | left shift | 5 << 1 | 0101 << 1 | 1010 | 10 |
>> | right shift | 5 >> 1 | 0101 >> 1 | 0010 | 2 |
>>> | unsigned right shift | 5 >>> 1 | 0101 >>> 1 | 0010 | 2 |
Bạn thử đoạn code sau về các toán tử thao tác Bit trong JavaScript:
<html>
<body>
<script>
var a = 2; // Bit presentation 10
var b = 3; // Bit presentation 11
var linebreak = "<br />";
document.write("(a & b) => ");
result = (a & b);
document.write(result);
document.write(linebreak);
document.write("(a | b) => ");
result = (a | b);
document.write(result);
document.write(linebreak);
document.write("(a ^ b) => ");
result = (a ^ b);
document.write(result);
document.write(linebreak);
document.write("(~b) => ");
result = (~b);
document.write(result);
document.write(linebreak);
document.write("(a << b) => ");
result = (a << b);
document.write(result);
document.write(linebreak);
document.write("(a >> b) => ");
result = (a >> b);
document.write(result);
document.write(linebreak);
</script>
<p>Set the variables to different values and different operators and then try...</p>
</body>
</html>
Trên đây là những kiến thức cơ bản về toán tử trong javascript giúp bạn có thêm những công cụ cần thiết trong tính toán hoặc thực hiện các biểu thức trong bài học của mình. Chúc bạn thành công.