1. Toán tử trong JavaScript là gì?

Như những phép tính bình thường mà ta hay làm như 2+3=5 . Đây là một phép tính mà ta đã được học rằng 2 và 3 là các toán hạng còn 5 là tổng. Vậy dấu cộng và dấu bằng là gì? Ở đây dấu cộng và bằng là một trong những toán tử. Ta có thể hiểu các ký hiệu thường được sử dụng để thực hiện các phép toán trong các bài toán chính là những toán tử. Và thực ra ở những bài trước mình đã đưa ra khá nhiều các ví dụ có sự xuất hiện của toán tử rồi nên chắc các bạn không còn xa lạ gì nữa chỉ là các bạn chưa biết rõ định nghĩa của nó mà thôi.

Những loại toán tử có trong JavaScript là:

  • Toán tử số học.
  • Toán tử so sánh (quan hệ).
  • Toán tử bit.
  • Toán tử logic.
  • Toán tử gán.
  • Các toán tử hỗn hợp.

2. Toán tử số học trong JavaScript

Toán tử số học thực ra là các dạng tính toán như cộng, trừ, nhân, chia ,… mà các bạn đã được học từ bé và giúp cho việc xử lý thay đổi giá trị các biến trong javascript.

Sau đây mình sẽ đưa ra bảng danh sách các toán tử trong Javascript loại toán học hay dùng.

Toán tử Ý nghĩa Ví dụ
+ Phép cộng 2 + 3
Phép trừ 3 – 1
* Phép nhân 2 * 2
/ Phép chia 4 / 2
% Phép chia lấy dư 6 % 2
++ Tăng lên 1 đơn vị var a=10; ++a; bây giờ a = 11
Giảm 1 đơn vị var a=10; –a; bây giờ a = 9

Ví dụ: mình sẽ đưa ra ví dụ cụ thể trong một chương trình cụ thể nhé:

<script>
        var a = 10;
        var b = 5;
        document.write(a+b); // 15
        document.write('<br/>'); //xuống dòng cho dễ đọc
        document.write(a-b); // 5
        document.write('<br/>'); //xuống dòng cho dễ đọc
        document.write(a*b);// 50
        document.write('<br/>'); //xuống dòng cho dễ đọc	
        document.write(a/b);// 2
        document.write('<br/>'); //xuống dòng cho dễ đọc
        document.write(++a); // 11
        document.write('<br/>'); //xuống dòng cho dễ đọc
        document.write(--b); // 4
</script>

Chú ý

về toán tử ++ hay thì khi ta viết biểu thức thì toán tử có thể ở bên trước hoặc sau biến cần tăng hay giảm thì kết quả trả về của biểu thức có sự khác nhau tùy cách viết.

Viết sau biến như: a = var++, b = var– thì giá trị trả về của biểu thức (giá trị gán vào a, b) là giá trị gốc của var, còn bản thân var vẫn được tăng, giảm:

var a = 0; b = 10;
var a = b++;
//a sẽ là 10; b là 11
Nếu toán tử ++-- viết bên trái biến, thì giá trị biểu thức trả về chính là biến sau khi tăng giảm
var a = 0; b = 10;
var a = ++b;
//a sẽ là 11; b là 11

3. Toán tử so sánh trong JavaScript(còn được gọi là toán tử quan hệ)

Cũng như cái tên thì toán tử so sánh dùng để so sánh 2 toán hạng. Nó sẽ trả về giá trị True hoặc False.

Bảng toán tử so sánh:

Toán tử Ý nghĩa Ví dụ
== So sánh bằng 1 == 2 trả về false
=== So sánh bằng và cả kể cả cùng kiểu dữ liệu ( giống hệt nhau) 3 == 5 trả về false
!= Không bằng 1 != 1 trả về true
!== Không giống hệt nhau 4 !== 4 trả về false
> Lớn hơn 5 > 4 trả về true
>= Lớn hơn hoặc bằng 3 >= 6 trả về false
< Nhỏ hơn 0 < 8 trả về true
<= Nhỏ hơn hoặc bằng 2 <= 2 trả về true

4. Toán tử logic trong JavaScript

Bảng toán tử logic gồm các phép toán và, hoặc, phủ định. Toán tử logic thường sử dụng để kết hợp hay phủ định biểu thức có chứa toán tử quan hệ, kết quả của sự kết hợp sẽ có giá trị True hoặc False.

Bảng sau đây mô tả các toán tử logic trong Javascript.

Toán tử Ý nghĩa
&& AND trả về kết quả là TRUE khi cả hai toán hạng đều TRUE
|| OR: trả về kết quả là TRUE khi cả hai hoặc một trong hai toán hàng là TRUE
! NOT: Chuyển đổi giá trị của toán hạng từ TRUE sang FALSE hoặc từ FALSE sang TRUE

Ví dụ:

var a = false;
var b = true;
console.log(a && b); // TRUE
console.log(a || b); // TRUE
console.log(!a); // TRUE
console.log(!b); // FALSE

5. Toán tử thao tác với bit trong JavaScript

Các toán tử bit thực hiện các thao tác bit trên các toán hạng. Các toán tử như sau:

Toán tử Ý nghĩa Ví dụ
& (Phép AND bit) Nó thực hiện một phép toán AND logic trên mỗi bit của các tham số integer của nó. (A & B) là 2.
| (Phép OR bit) Nó thực hiện một phép toán OR logic trên mỗi bit của các tham số integer của nó. (A | B) là 3.
^ (Phép XOR bit Nó thực hiện một phép toán OR loại trừ logic trên mỗi bit của các tham số integer của nó. Phép hoặc loại trừ nghĩa là hoặc toán hạng 1 là đúng hoặc toán hạng 2 là đúng, nhưng không phải cả hai. (A ^ B) là 1.
~ (Phép phủ định bit) Nó là toán tử một ngôi và thực hiện đảo ngược tất cả các bit trong toán hạng đó. (~B) là -4.
<< (Phép dịch trái) Nó di chuyển tất cả các bit trong toán hạng đầu tiên sang trái với số vị trí được xác định trong toán hạng thứ hai. Các bit mới được làm đầy bởi số 0. Chuyển dịch một giá trị sang trái một vị trí tương đương với nhân nó với 2, chuyển dịch 2 vị trí tương đương với nhân với 4, và cứ như vậy. (A << 1) là 4.
>> (Phép dịch phải) Toán tử dịch phải nhị phân. Giá trị của toán hạng trái được di chuyển sang phải bởi số các bit được xác định bởi toán hạng phải. (A >> 1) là 1.
>>> (Phép dịch phải với Zero) Toán tử này khá giống với toán tử >>, ngoại trừ ở chỗ các bit được dịch chuyển sang trái luôn luôn là số 0. (A >>> 1) là 1.

Ví dụ:

<script type="text/javascript">
         <!--
            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>