Toán Tử Trong JavaScript: Hướng Dẫn Chi Tiết Cho Web Developer
Khám phá tất cả các loại toán tử trong JavaScript, cách hoạt động, ví dụ thực tế và những lỗi thường gặp khi sử dụng toán tử.

Toán tử trong JavaScript: Hiểu đúng – dùng chuẩn – viết code hiệu quả
Khi học JavaScript, một trong những chủ đề căn bản nhưng ảnh hưởng cực lớn đến chất lượng code chính là toán tử. Dù bạn đang xử lý điều kiện, vòng lặp, so sánh dữ liệu, tính toán logic hay thao tác với object — toán tử luôn xuất hiện ở mọi nơi.
Đặc biệt, nếu bạn đang tìm kiếm tài liệu chuẩn SEO cho chủ đề “Toán tử” với ví dụ thực tế, dễ đọc, dễ hiểu và phù hợp với web developer, thì bài viết này dành riêng cho bạn.
Dưới đây là hướng dẫn chi tiết – đầy đủ – có ví dụ – có snippet – có best practices, giúp bạn làm chủ mọi loại toán tử trong JavaScript.
1. Toán tử là gì?
Toán tử (operator) là ký hiệu hoặc từ khóa dùng để thực hiện các phép tính hoặc thao tác lên giá trị, biến, biểu thức trong JavaScript.
JavaScript có nhiều nhóm toán tử khác nhau:
- Toán tử số học (Arithmetic)
- Toán tử gán (Assignment)
- Toán tử so sánh (Comparison)
- Toán tử logic (Logical)
- Toán tử chuỗi (String)
- Toán tử điều kiện (Ternary)
- Toán tử bit (Bitwise)
- Toán tử typeof, instanceof
- Toán tử nullish (??) và optional chaining (?.)
- Toán tử spread và rest
Bài viết này sẽ giúp bạn nắm rõ từng loại cùng ví dụ dễ hiểu.
2. Toán tử số học (Arithmetic Operators)
Đây là nhóm toán tử quen thuộc nhất, dùng để tính toán.
| Toán tử | Ý nghĩa |
|---|---|
+ | Cộng |
- | Trừ |
* | Nhân |
/ | Chia |
% | Lấy dư |
** | Lũy thừa |
Ví dụ:
let a = 10;
let b = 3;
console.log(a + b); // 13
console.log(a % b); // 1
console.log(a ** b); // 1000Chú ý quan trọng: + với chuỗi
console.log(1 + "2"); // "12"
console.log("Hello " + "World"); // "Hello World"3. Toán tử gán (Assignment Operators)
| Toán tử | Ví dụ | Tương đương |
|---|---|---|
= | x = y | x = y |
+= | x += y | x = x + y |
-= | x -= y | x = x - y |
*= | x *= y | x = x * y |
/= | x /= y | x = x / y |
Ví dụ:
let x = 5;
x += 3; // x = 84. Toán tử so sánh (Comparison Operators)
| Toán tử | Ý nghĩa |
|---|---|
== | So sánh bằng (có ép kiểu) |
=== | So sánh bằng (không ép kiểu) |
!= | Không bằng (có ép kiểu) |
!== | Không bằng (không ép kiểu) |
> | Lớn hơn |
< | Nhỏ hơn |
>= | Lớn hơn hoặc bằng |
<= | Nhỏ hơn hoặc bằng |
Ví dụ:
console.log(1 == "1"); // true
console.log(1 === "1"); // falseLời khuyên quan trọng:
👉 Luôn dùng === thay vì == để tránh bug do ép kiểu.
5. Toán tử logic (Logical Operators)
| Toán tử | Tên | Ví dụ |
|---|---|---|
&& | AND | a && b |
| ` | ` | |
! | NOT | !a |
Ví dụ thực tế kiểm tra form:
let age = 20;
let hasID = true;
if (age >= 18 && hasID) {
console.log("Đủ điều kiện");
}Short-circuit là gì?
&&dừng khi gặp giá trị false||dừng khi gặp giá trị true
Ví dụ:
console.log(false && "ABC"); // false
console.log(true || "XYZ"); // true6. Toán tử chuỗi (String Operators)
Toán tử + và += thường dùng để nối chuỗi.
let msg = "Hello";
msg += " Nam!";
console.log(msg);7. Toán tử điều kiện (Ternary Operator)
Cú pháp rút gọn cho if…else.
let age = 18;
let result = age >= 18 ? "Adult" : "Child";
console.log(result);Dùng ternary giúp code ngắn và sạch hơn.
8. Toán tử typeof và instanceof
typeof: kiểm tra kiểu dữ liệu
typeof 123; // "number"
typeof "Nam"; // "string"
typeof {}; // "object"instanceof: kiểm tra object thuộc class nào
const date = new Date();
console.log(date instanceof Date); // true9. Toán tử nullish (??)
Dùng để gán giá trị mặc định khi biến là null hoặc undefined.
let user = null;
let name = user ?? "Guest";
console.log(name); // GuestSo sánh với ||:
0 || 10 // 10
0 ?? 10 // 0 (đúng mong muốn)10. Optional chaining (?.)
Tránh lỗi “Cannot read property of undefined”.
const user = {
profile: {
name: "Nam",
},
};
console.log(user.profile?.name); // Nam
console.log(user.address?.city); // undefined11. Toán tử Spread & Rest
Spread: “trải” phần tử
const a = [1, 2, 3];
const b = [...a, 4, 5];Rest: gom phần tử vào 1 biến
function sum(...numbers) {
return numbers.reduce((a, b) => a + b);
}12. Toán tử Bitwise (ít dùng)
| Toán tử | Ý nghĩa |
|---|---|
& | AND |
| ` | ` |
^ | XOR |
~ | NOT |
<< | dịch trái |
>> | dịch phải |
Không cần học sâu nếu bạn không làm low-level.
13. Những lỗi thường gặp khi dùng toán tử
13.1 Dùng == thay vì ===
console.log("" == 0); // true (rất nguy hiểm)13.2 Quên dấu ngoặc trong biểu thức phức tạp
a + b * c // khác nghĩa với (a + b) * c13.3 Dùng || để gán giá trị mặc định → sai với 0 hoặc chuỗi rỗng
Nên dùng ??
13.4 Nhầm lẫn giữa = và ==
if (x = 5) {
// luôn true
}14. Ví dụ thực tế: Kiểm tra quyền user
function checkPermission(user) {
return user?.role === "admin"
? "Có quyền truy cập"
: "Không đủ quyền";
}
console.log(checkPermission({ role: "admin" }));15. Checklist học toán tử
- Nắm vững toán tử số học
- Phân biệt == và ===
- Biết dùng &&, || và short-circuit
- Dùng ternary cho biểu thức ngắn
- Dùng ?? thay cho || trong nhiều trường hợp
- Hiểu optional chaining để tránh crash
- Biết dùng spread/rest trong object và array
16. Kết luận
Toán tử là nền tảng của mọi biểu thức trong JavaScript. Khi nắm vững toán tử, bạn sẽ viết code rõ ràng hơn, ít bug hơn và tư duy logic sắc bén hơn.
Nếu bạn muốn mình tiếp tục viết về chủ đề như Toán tử so sánh nâng cao, Type coercion, Scope, Closure hoặc chuỗi bài học JavaScript cho người mới — cứ nhắn nhé!
Chúc bạn học tốt và viết code ngày càng chất lượng! 🚀