Toán tử trong JavaScript
Trong bài viết này, chúng tôi sẽ giải thích về các toán tử trong JavaScript.
YouTube Video
Toán tử trong JavaScript
Các toán tử trong JavaScript là các ký hiệu hoặc từ khóa được sử dụng để thực hiện các phép tính hoặc so sánh trên số và biến. Có nhiều loại toán tử khác nhau, mỗi loại thực hiện các phép toán riêng biệt. Dưới đây là tổng hợp một số toán tử chính:.
Toán tử số học
Các toán tử số học của JavaScript bao gồm những điều sau đây:.
Toán tử | Mô tả | Ví dụ | Kết quả |
---|---|---|---|
+ |
Phép cộng | 5 + 2 |
7 |
- |
Phép trừ | 5 - 2 |
3 |
* |
Phép nhân | 5 * 2 |
10 |
/ |
Phép chia | 5 / 2 |
2.5 |
% |
Phép chia lấy dư (Modulus) | 5 % 2 |
1 |
++ |
Tăng thêm 1 (Increment) | let x = 5; x++ |
6 |
-- |
Giảm đi 1 (Decrement) | let x = 5; x-- |
4 |
1let a = 10; // Initialize variable 'a' with the value 10
2let b = 3; // Initialize variable 'b' with the value 3
3
4// Perform and display arithmetic operations between 'a' and 'b'
5console.log("Addition (a + b): ", a + b); // 13
6console.log("Subtraction (a - b): ", a - b); // 7
7console.log("Multiplication (a * b):", a * b); // 30
8console.log("Division (a / b): ", a / b); // 3.333...
9console.log("Modulus (a % b): ", a % b); // 1
10
11// Demonstrate post-increment operation on 'a'
12// Output the current value of 'a' (10), then increment
13console.log("Post-increment (a++): ", a++);
14// Display the incremented value of 'a' (11)
15console.log("Value of 'a' after increment:", a);
16
17// Demonstrate pre-increment operation on 'a'
18// Increment 'a' first (12) then output
19console.log("Pre-increment (++a): ", ++a);
20
21// Demonstrate post-decrement operation on 'a'
22// Output the current value of 'a' (12), then decrement
23console.log("Post-decrement (a--): ", a--);
24// Display the decremented value of 'a' (11)
25console.log("Value of 'a' after decrement:", a);
26
27// Demonstrate pre-decrement operation on 'a'
28// Decrement 'a' first (10) then output
29console.log("Pre-decrement (--a): ", --a);
Các toán tử số học thực hiện các phép toán cơ bản trên số. Ngoài phép cộng và phép trừ, bạn cũng có thể thực hiện các phép toán như chia lấy dư, tăng thêm và giảm đi. Lưu ý rằng giá trị trả về bởi việc tăng thêm hoặc giảm đi sẽ khác nhau tùy thuộc vào việc toán tử đứng trước hay sau toán hạng.
Toán tử gán
Các toán tử gán của JavaScript bao gồm những điều sau đây:.
Toán tử | Mô tả | Ví dụ | Kết quả |
---|---|---|---|
= |
Gán | x = 5 |
x được gán giá trị 5 |
+= |
Gán với phép cộng | x += 5 |
x = x + 5 |
-= |
Gán với phép trừ | x -= 5 |
x = x - 5 |
*= |
Gán với phép nhân | x *= 5 |
x = x * 5 |
/= |
Gán với phép chia | x /= 5 |
x = x / 5 |
%= |
Gán theo phép toán lấy dư | x %= 5 |
x = x % 5 |
1let x = 10;
2
3x += 5; // x = x + 5, so x becomes 15
4console.log('After x += 5 : ', x); // 15
5
6x -= 10;
7console.log('After x -= 10 : ', x); // 5
8
9x *= 3;
10console.log('After x *= 3 : ', x); // 15
11
12x /= 3;
13console.log('After x /= 3 : ', x); // 5
14
15x %= 2;
16console.log('After x %= 2 : ', x); // 1
Toán tử gán được sử dụng để gán giá trị cho biến hoặc cập nhật giá trị của biến. Ngoài phép gán thông thường, còn có các toán tử gán dành cho các phép toán số học như cộng và lấy dư.
Toán tử so sánh
Các toán tử so sánh của JavaScript bao gồm những điều sau đây:.
Toán tử | Mô tả | Ví dụ | Kết quả |
---|---|---|---|
== |
Bằng nhau | 5 == "5" |
true |
=== |
Bằng tuyệt đối (Cả kiểu dữ liệu và giá trị đều bằng nhau) | 5 === "5" |
false |
!= |
Không bằng | 5 != "5" |
false |
!== |
Không bằng tuyệt đối | 5 !== "5" |
true |
> |
Lớn hơn | 5 > 2 |
true |
< |
Nhỏ hơn | 5 < 2 |
false |
>= |
Lớn hơn hoặc bằng | 5 >= 5 |
true |
<= |
Nhỏ hơn hoặc bằng | 5 <= 4 |
false |
1console.log("5 == '5' evaluates to:", 5 == "5"); // true (because the values are equal)
2console.log("5 === '5' evaluates to:", 5 === "5"); // false (because the types are different)
3console.log("5 != '5' evaluates to:", 5 != "5"); // false
4console.log("5 !== '5' evaluates to:", 5 !== "5"); // true
5console.log("5 > 2 evaluates to:", 5 > 2); // true
6console.log("5 < 2 evaluates to:", 5 < 2); // false
7console.log("5 >= 5 evaluates to:", 5 >= 5); // true
8console.log("5 <= 4 evaluates to:", 5 <= 4); // false
9console.log("5 >= '5' evaluates to:", 5 >= "5"); // true
10console.log("5 <= '5' evaluates to:", 5 <= "5"); // true
- Toán tử so sánh sẽ so sánh các giá trị và trả về kết quả là true hoặc false.
- Toán tử so sánh bằng (
==
) tự động chuyển đổi các kiểu khác nhau nếu cần thiết trước khi thực hiện so sánh. Toán tử so sánh bằng nghiêm ngặt (===
) không thực hiện bất kỳ chuyển đổi kiểu nào trong quá trình so sánh và chỉ trả vềtrue
nếu cả hai giá trị có cùng kiểu và cùng giá trị. Việc sử dụng toán tử so sánh bằng nghiêm ngặt (===
) giúp ngăn ngừa các lỗi gây ra bởi việc chuyển đổi kiểu không mong muốn, do đó nên ưu tiên sử dụng toán tử này.
Toán tử logic
Các toán tử lô-gic của JavaScript bao gồm những điều sau đây:.
Toán tử | Mô tả | Ví dụ | Kết quả |
---|---|---|---|
&& |
AND (Đúng nếu cả hai điều kiện đều đúng) | true && false |
false |
|| |
OR (Đúng nếu một trong hai điều kiện đúng) | true || false |
true |
! |
NOT (Chuyển true thành false và false thành true) | !true |
false |
1let a = true;
2let b = false;
3
4console.log("a && b evaluates to:", a && b); // false
5console.log("a || b evaluates to:", a || b); // true
6console.log("!a evaluates to:", !a); // false
Toán tử logic được sử dụng khi có nhiều điều kiện, để đánh giá sự kết hợp các điều kiện.
Ưu tiên của các Toán tử Lô-gic
Trong JavaScript, các toán tử lô-gic thường được đánh giá theo thứ tự NOT
trước, sau đó đến AND
, và cuối cùng là OR
.
NOT
có mức ưu tiên cao nhất
NOT
là một toán tử đơn và được đánh giá với mức ưu tiên cao nhất.
1console.log(!true || false); // false
AND
có mức ưu tiên cao hơn OR
AND
có mức ưu tiên cao hơn OR
, vì vậy phần AND
được đánh giá trước.
1console.log(true || false && false); // true
Theo cách này, phần AND
(&&
) được đánh giá trước, và kết quả của nó được truyền đến OR
(||
).
AND
và OR
thực hiện đánh giá ngắn mạch
AND
và OR
trong JavaScript thực hiện đánh giá ngắn mạch. Nếu kết quả có thể được xác định bởi giá trị phía bên trái, thì biểu thức phía bên phải không được đánh giá.
1let a = false && console.log("This will not be printed");
2console.log(a); // false
3
4let b = true || console.log("This will not be printed");
5console.log(b); // true
Trong cả hai trường hợp, console.log()
sẽ không được thực thi.
Thiết lập mức ưu tiên rõ ràng
Bằng cách nhóm rõ ràng các biểu thức với dấu ngoặc đơn, bạn có thể ngăn ngừa hiểu lầm về thứ tự ưu tiên.
1console.log(true || (false && false)); // true
Sự khác biệt giữa ngôn ngữ tự nhiên và cách hiểu của chương trình
Khi sử dụng các toán tử lô-gic, điều quan trọng là cần lưu ý đến sự mơ hồ trong ngôn ngữ tự nhiên. Ví dụ, khi nói 'chó trắng hoặc mèo,' nó có thể nghĩa là 'một con chó trắng hoặc bất kỳ màu mèo nào' hoặc 'một con chó trắng hoặc một con mèo trắng.'. Trong mã, nó sẽ trông như thế này:.
1if (isWhite && isDog || isCat) {
2 console.log(' "A white dog" or "a cat of any color" ');
3}
4
5if (isWhite && (isDog || isCat)) {
6 console.log(' "A white dog" or "a white cat" ');
7}
8
9console.log(true || (false && false)); // true
Do ngôn ngữ tự nhiên chứa sự mơ hồ như thế này, cần cẩn thận khi lập trình hoặc thiết kế.
Toán tử ba ngôi (Toán tử điều kiện)
JavaScript bao gồm một toán tử tam nguyên (toán tử điều kiện).
Toán tử | Mô tả | Ví dụ | Kết quả |
---|---|---|---|
? : |
Nếu điều kiện đúng, thực thi phần bên trái, nếu sai, thực thi phần bên phải | condition ? if true : if false |
Kết quả dựa trên điều kiện |
1let age = 20;
2let message = age >= 18 ? "Adult" : "Minor";
3console.log(message); // "Adult"
Nó được viết dưới dạng điều kiện ? giá trị nếu đúng : giá trị nếu sai
.
Toán tử bitwise
Các toán tử bitwise của JavaScript bao gồm những điều sau.
Toán tử | Mô tả | Ví dụ | Kết quả |
---|---|---|---|
& |
AND | 5 & 1 |
1 |
| |
OR | 5 | 1 |
5 |
^ |
XOR | 5 ^ 1 |
4 |
~ |
NOT | ~5 |
-6 |
<< |
Dịch trái | 5 << 1 |
10 |
>> |
Dịch phải | 5 >> 1 |
2 |
1let x = 0x0F & 0x0C;
2console.log("0x0F & 0x0C evaluates to:", x, "(0x0C, 12)"); // 0x0C (12)
3
4x = 0x04 | 0x02;
5console.log("0x04 | 0x02 evaluates to:", x, "(0x06, 6)"); // 0x06 (6)
6
7x = 0x0F ^ 0x0C;
8console.log("0x0F ^ 0x0C evaluates to:", x, "(0x03, 3)"); // 0x03 (3)
9
10// The inverted number is represented as a negative value
11// because JavaScript numbers are stored as signed 32-bit integers.
12x = ~0x0C;
13console.log("~0x0C evaluates to:", x, "(-13, 0xF3)"); // 0xF3 (-13)
14
15x = 0x04 << 1;
16console.log("0x04 << 1 evaluates to:", x, "(0x08, 8)"); // 0x08 (8)
17x = 0x04 >> 1;
18console.log("0x04 >> 1 evaluates to:", x, "(0x02, 2)"); // 0x02 (2)
Các toán tử bit thực hiện tính toán trên các số ở mức bit. Chúng thường được sử dụng cho xử lý cấp thấp.
Toán tử kiểu dữ liệu
Các toán tử kiểu dữ liệu của JavaScript bao gồm những điều sau.
Toán tử | Mô tả | Ví dụ | Kết quả |
---|---|---|---|
typeof |
Trả về kiểu dữ liệu của một biến | typeof 123 |
"number" |
instanceof |
Kiểm tra xem một đối tượng có thuộc về một lớp cụ thể không | arr instanceof Array |
true |
1console.log(typeof "Hello"); // "string"
2console.log(typeof 42); // "number"
3
4let arr = [1, 2, 3];
5console.log("arr instanceof Array : ", arr instanceof Array); // true
Toán tử kiểu dữ liệu được sử dụng để kiểm tra kiểu của một giá trị hoặc chuyển đổi nó sang một kiểu cụ thể.
Toán tử typeof
trả về kiểu dữ liệu của một biến.
Toán tử instanceof
kiểm tra xem một đối tượng có thuộc một lớp cụ thể hay không.
Tóm tắt
- Toán tử số học thực hiện các phép tính cơ bản.
- Toán tử gán gán hoặc cập nhật giá trị trong các biến.
- Toán tử so sánh so sánh hai giá trị và trả về đúng hoặc sai.
- Toán tử logic đánh giá các kết hợp của điều kiện.
- Toán tử ba ngôi cho phép bạn viết câu lệnh điều kiện ngắn gọn hơn so với
if
. - Toán tử bit thực hiện các tính toán ở mức bit.
- Toán tử kiểu dữ liệu cho phép bạn kiểm tra kiểu của một giá trị.
Bạn có thể làm theo bài viết trên bằng cách sử dụng Visual Studio Code trên kênh YouTube của chúng tôi. Vui lòng ghé thăm kênh YouTube.