[JS Basics] Toán tử trong JavaScript: Tổng hợp và ví dụ thực hành dễ hiểu

Chào mừng bạn đến với thế giới lập trình JavaScript! Nếu ví von JavaScript như một ngôn ngữ, thì các biến và giá trị là danh từ, còn toán tử (operators) chính là những động từ, những chất kết dính tạo nên sự logic và sức mạnh cho mã của bạn. Chúng là những công cụ nền tảng nhất giúp bạn thực hiện các phép tính, so sánh giá trị và đưa ra quyết định.

Toán tử trong JavaScript

Trong bài viết này, chúng ta sẽ cùng nhau đi sâu vào từng loại toán tử cơ bản, từ những phép cộng trừ quen thuộc đến những so sánh logic phức tạp. Dù bạn là người mới bắt đầu hay muốn củng cố lại kiến thức, đây chính là hành trang không thể thiếu trên con đường chinh phục JavaScript.

1. Toán tử là gì? Một cái nhìn tổng quan 😊

Rất đơn giản, toán tử là một ký hiệu đặc biệt (+, -, *, /, =, >) được sử dụng để thực hiện một thao tác trên một, hai hoặc ba giá trị. Những giá trị này được gọi là toán hạng (operands).

Hãy xem ví dụ kinh điển này:

let a = 5 + 10
  • +toán tử (phép cộng).
  • 510 là các toán hạng.
  • = cũng là một toán tử (phép gán).

JavaScript cung cấp nhiều loại toán tử khác nhau, và chúng ta sẽ phân loại chúng để dễ dàng "tiêu hóa" hơn.

2. Các toán tử số học (Arithmetic Operators) 🧮

Đây là nhóm toán tử quen thuộc nhất, dùng để thực hiện các phép toán cơ bản. Giống như chiếc máy tính bỏ túi của bạn vậy!

Toán tửTên gọiVí dụKết quảMô tả
+Cộng10 + 515Tính tổng hai toán hạng.
-Trừ10 - 55Lấy toán hạng trái trừ đi toán hạng phải.
*Nhân10 * 550Nhân hai toán hạng.
/Chia10 / 52Chia toán hạng trái cho toán hạng phải.
%Chia lấy dư (Modulus)10 % 31Trả về số dư của phép chia.
**Lũy thừa (Exponentiation)2 ** 38Lũy thừa toán hạng trái với số mũ là toán hạng phải (tương đương 2*2*2).
++Tăng lên 1 (Increment)let a = 5; a++;a bây giờ là 6Tăng giá trị của biến lên 1 đơn vị.
--Giảm đi 1 (Decrement)let a = 5; a--;a bây giờ là 4Giảm giá trị của biến đi 1 đơn vị.

💡 Lưu ý đặc biệt với toán tử +: Khi được sử dụng với chuỗi (string), toán tử + sẽ thực hiện phép nối chuỗi (concatenation).

let greeting = 'Hello ' + 'world!'
console.log(greeting) // Kết quả: "Xin chào thế giới!"

let number = '5' + 3
console.log(number) // Kết quả: "53" (vì "5" là chuỗi, JavaScript sẽ coi 3 là chuỗi và nối chúng lại)

3. Các toán tử gán (Assignment Operators) ✍️

Toán tử gán dùng để gán một giá trị cho một biến. Toán tử gán cơ bản nhất là dấu bằng (=). Tuy nhiên, JavaScript còn cung cấp các toán tử gán kết hợp để viết mã ngắn gọn hơn.

Toán tửTương đương vớiVí dụ
x = yx = ylet x = 10;
x += yx = x + ylet x = 10; x += 5; // x bây giờ là 15
x -= yx = x - ylet x = 10; x -= 5; // x bây giờ là 5
x *= yx = x * ylet x = 10; x *= 5; // x bây giờ là 50
x /= yx = x / ylet x = 10; x /= 5; // x bây giờ là 2
x %= yx = x % ylet x = 10; x %= 3; // x bây giờ là 1
x **= yx = x ** ylet x = 2; x **= 3; // x bây giờ là 8

Sử dụng các toán tử này không chỉ giúp code ngắn hơn mà còn dễ đọc hơn khi bạn đã quen thuộc.

4. Các toán tử so sánh (Comparison Operators) 🤔

Toán tử so sánh được dùng trong các câu lệnh logic để xác định sự bằng nhau hoặc khác nhau giữa các biến hoặc giá trị. Kết quả của một phép so sánh luôn là một giá trị boolean (true hoặc false). Đây là nền tảng cho việc rẽ nhánh và ra quyết định trong code (ví dụ: trong câu lệnh if...else).

Toán tửTên gọiVí dụKết quả
==Bằng (So sánh lỏng)5 == "5"true
===Bằng tuyệt đối (So sánh nghiêm ngặt)5 === "5"false
!=Không bằng (So sánh lỏng)5 != "5"false
!==Không bằng tuyệt đối (So sánh nghiêm ngặt)5 !== "5"true
>Lớn hơn10 > 5true
<Nhỏ hơn10 < 5false
>=Lớn hơn hoặc bằng10 >= 10true
<=Nhỏ hơn hoặc bằng10 <= 5false

🔥 Trận chiến kinh điển: == vs. ===

Đây là một trong những điểm khác biệt quan trọng nhất mà mọi lập trình viên JavaScript cần nắm vững.

  • == (Bằng lỏng - Loose Equality): Chỉ so sánh giá trị sau khi đã thực hiện chuyển đổi kiểu dữ liệu (type coercion). Trong ví dụ 5 == "5", JavaScript sẽ tự động chuyển chuỗi "5" thành số 5 rồi mới so sánh, vì vậy kết quả là true.
  • === (Bằng nghiêm ngặt - Strict Equality): So sánh cả giá trịkiểu dữ liệu. Nó không tự động chuyển đổi kiểu. Vì số 5 và chuỗi "5" có kiểu dữ liệu khác nhau, 5 === "5" trả về false.

👉 Lời khuyên vàng: Hãy luôn ưu tiên sử dụng ===!== để tránh các lỗi ngầm do cơ chế tự động chuyển đổi kiểu dữ liệu gây ra. Điều này giúp mã của bạn trở nên rõ ràng, dễ đoán và ít lỗi hơn.

5. Các toán tử logic (Logical Operators) 🧠

Toán tử logic thường được sử dụng để kết hợp nhiều biểu thức so sánh lại với nhau, cho phép bạn xây dựng những điều kiện phức tạp.

Toán tửTên gọiMô tả
&&VÀ (AND)Trả về true nếu cả hai toán hạng đều là true.
||HOẶC (OR)Trả về true nếu ít nhất một trong hai toán hạng là true.
!PHỦ ĐỊNH (NOT)Đảo ngược giá trị boolean của toán hạng (true thành false và ngược lại).

Ví dụ thực tế:

let age = 25
let hasDriverLicense = true

// Kiểm tra xem người này có đủ tuổi VÀ có bằng lái để lái xe không
if (age >= 18 && hasDriverLicense) {
  console.log('You are allowed to drive.') // Sẽ in ra dòng này
}

let isWeekend = false
let isHoliday = true

// Kiểm tra xem có phải ngày nghỉ không (cuối tuần HOẶC ngày lễ)
if (isWeekend || isHoliday) {
  console.log('Today is a day off!') // Sẽ in ra dòng này
}

let isRaining = false
if (!isRaining) {
  // KHÔNG phải trời đang mưa
  console.log('Let’s go outside for a walk!') // Sẽ in ra dòng này
}

6. Độ ưu tiên của toán tử

Khi một biểu thức có nhiều toán tử, JavaScript sẽ thực hiện chúng theo một thứ tự ưu tiên nhất định. Ví dụ, phép nhân (*) luôn được thực hiện trước phép cộng (+).

let result = 5 + 10 * 2 // 10 * 2 được thực hiện trước
console.log(result) // Kết quả là 25, không phải 30

let result2 = (5 + 10) * 2 // (5 + 10) được thực hiện trước
console.log(result2) // Kết quả là 30

Kết luận: Toán tử là "core" của logic lập trình JavaScript

Toán tử là xương sống của logic lập trình trong JavaScript. Việc hiểu rõ và sử dụng thành thạo chúng, đặc biệt là sự khác biệt giữa =====, sẽ giúp bạn viết mã một cách hiệu quả, chính xác và chuyên nghiệp hơn.

Đừng chỉ đọc, hãy mở trình soạn thảo mã của bạn lên, thử nghiệm với từng toán tử, tạo ra các biểu thức của riêng mình. Thực hành chính là con đường ngắn nhất để làm chủ những công cụ mạnh mẽ này. Chúc bạn thành công trên hành trình code của mình! 💻✨

Bài viết liên quan

[JS Basics] Cách thiết lập môi trường chạy mã JavaScript

Bạn là người mới học lập trình và muốn bắt đầu với JavaScript? Bài viết này sẽ hướng dẫn bạn từng bước cách thiết lập môi trường chạy JavaScript trên máy tính một cách dễ dàng và nhanh chóng nhất.

[JS Basics] Biến và Kiểu dữ liệu: Khái niệm quan trọng cần nắm vững

Nắm vững biến và các kiểu dữ liệu là chìa khóa để trở thành lập trình viên JavaScript giỏi. Bài viết này sẽ cung cấp cho bạn kiến thức nền tảng vững chắc và các ví dụ thực tế.

Nắm vững quy tắc cơ bản của JavaScript trong 5 phút - Hướng dẫn nhanh

Bắt đầu hành trình JavaScript của bạn với những quy tắc cơ bản nhất. Học cách viết code đúng chuẩn, tránh lỗi thường gặp và xây dựng nền tảng vững chắc cho sự nghiệp lập trình.

[JS Basics] JavaScript là gì? Tại sao nó lại quan trọng với lập trình viên?

JavaScript là gì? Bài viết này sẽ giải thích chi tiết về khái niệm, vai trò và ứng dụng của JavaScript, ngôn ngữ lập trình không thể thiếu trong phát triển web hiện đại.