Toán tử trong JavaScript




Một toán tử là gì?

Chúng ta xem biểu thức đơn giản sau: 4 + 5 là bằng 9. Tại đây 4 và 5 là các operands - toán hạng và '+' được gọi là operator - toán tử. 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

Bây giờ chúng ta xem xét từng toán tử một.

Toán tử số học

JavaScript hỗ trợ các kiểu toán tử số học sau:

Giả sử biến A giữ giá trị 10 và biến B giữ giá trị 20, thì khi đó:

STT Toán tử và Miêu tả
1

+ (Phép cộng)

Cộng hai toán hạng

Ex: 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ạng

Ex: A * B sẽ cho kết quả là 200

4

/ (Phép chia)

Chia số chia cho số bị chia

Ex: 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 1

Ex: A++ sẽ cho kết quả là 11

7

-- (Giảm đi 1)

Giảm một giá trị integer đi một

Ex: A-- sẽ cho kết quả là 9

Ghi chú − 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".

Ví dụ

Code sau chỉ cách sử dụng các toán tử số học trong JavaScript:

<html>
   <body>
   
      <script type="text/javascript">
         <!--
            var a = 33;
            var b = 10;
            var c = "Test";
            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("a % b = ");
            result = a % b;
            document.write(result);
            document.write(linebreak);
         
            document.write("a + b + c = ");
            result = a + b + c;
            document.write(result);
            document.write(linebreak);
         
            a = a++;
            document.write("a++ = ");
            result = a++;
            document.write(result);
            document.write(linebreak);
         
            b = b--;
            document.write("b-- = ");
            result = b--;
            document.write(result);
            document.write(linebreak);
         //-->
      </script>
      
      Set the variables to different values and then try...
   </body>
</html>

Kết quả

a + b = 43 
a - b = 23 
a / b = 3.3 
a % b = 3 
a + b + c = 43Test 
a++ = 33 
b-- = 10
Set the variables to different values and then try...

Toán tử so sánh

JavaScript hỗ trợ các toán tử so sanh sau:

Giả sử biến A giữ giá trị 10 và biến B giữ giá trị là 20, thì khi đó:

STT Toán tử và Miêu tả
1

= = (Phép bằng)

Kiểm tra nếu giá trị của hai toán hạng là cân bằng hoặc không, nếu có, thì điều kiện trở thành true.

Ex: (A == B) là không true.

2

!= (Không cân bằng)

Kiểm tra nếu giá trị của hai toán hạng là cân bằng hoặc không, nếu không, thì điều kiện trở thành true.

Ex: (A != B) là true.

3

> (Lớn hơn)

Kiểm tra nếu giá trị của toán hạng trái là lớn hơn toán hạng phải, nếu có, thì điều kiện trở thành true.

Ex: (A > B) là không true.

4

< (Nhỏ hơn)

Kiểm tra nếu giá trị của toán hạng trái là nhỏ hơn toán hạng phải, nếu có, thì điều kiện trở thành true.

Ex: (A < B) là true.

5

>= (Lớn hơn hoặc bằng)

Kiểm tra nếu giá trị của toán hạng trái là lớn hơn hoặc bằng toán hạng phải, nếu có, thì điều kiện trở thành true.

Ex: (A >= B) là không true.

6

<= (Nhỏ hơn hoặc bằng)

Kiểm tra nếu giá trị của toán hạng trái là nhỏ hơn hoặc bằng toán hạng phải, nếu có, thì điều kiện trở thành true.

Ex: (A <= B) là true.

Ví dụ

Code sau chỉ cách sử dụng các toán tử so sánh trong JavaScript:

<html>
   <body>
   
      <script type="text/javascript">
         <!--
            var a = 10;
            var b = 20;
            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("(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);
         //-->
      </script>
      
      Set the variables to different values and different operators and then try...
   </body>
</html>

Kết quả

(a == b) => false 
(a < b) => true 
(a > b) => false 
(a != b) => true 
(a >= b) => false 
a <= b) => true
Set the variables to different values and different operators and then try...

Toán tử logic

JavaScript hỗ trợ các toán tử logic sau:

Giả sử biến A giữ giá trị 10 và biến B giữ giá trị 20, thì khi đó:

STT Toán tử và Miêu tả
1

&& (Phép AND logic)

Nếu cả hai toán hạng là khác không, thì điều kiện trở thành true.

Ex: (A && B) là true.

2

|| (Phép OR logic)

Nếu 1 trong hai toán hạng là khác không, thì điều kiện trở thành true.

Ex: (A || B) là true.

3

! (Phép NOT logic)

Đảo ngược trạng thái của toán hạng. Nếu một điều kiện là true, thì toán tử OR này sẽ làm nó false.

Ex: ! (A && B) là false.

Ví dụ

Bạn thử ví dụ sau chỉ cách sử dụng các toán tử logic trong JavaScript:

<html>
   <body>
   
      <script type="text/javascript">
         <!--
            var a = true;
            var b = false;
            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);
         //-->
      </script>
      
      <p>Set the variables to different values and different operators and then try...</p>
   </body>
</html>

Kết quả

(a && b) => false 
(a || b) => true 
!(a && b) => true
Set the variables to different values and different operators and then try...

Toán tử thao tác bit (bitwise)

JavaScript hỗ trợ các toán tử thao tác bit sau:

Giả sử biến A giữ giá trị 2 va biến B giữ giá trị 3, thì khi đó:

STT Toán tử và Miêu tả
1

& (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ó.

Ex: (A & B) là 2.

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ó.

Ex: (A | B) là 3.

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.

Ex: (A ^ B) là 1.

4

~ (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 đó.

Ex: (~B) là -4.

5

<< (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.

Ex: (A << 1) là 4.

6

>> (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.

Ex: (A >> 1) là 1.

7

>>> (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.

Ex: (A >>> 1) là 1.

Ví dụ

Bạn thử đoạn code sau về các toán tử thao tác Bit trong JavaScript:

<html>
   <body>
   
      <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>
      
      <p>Set the variables to different values and different operators and then try...</p>
   </body>
</html>

Kết quả

(a & b) => 2 
(a | b) => 3 
(a ^ b) => 1 
(~b) => -4 
(a << b) => 16 
(a >> b) => 0
Set the variables to different values and different operators and then try...

Toán tử gán

JavaScript hỗ trợ các toán tử gán sau:

STT Toán tử và Miêu tả
1

= (Phép gán đơn giản )

Gán các giá trị từ toán hạng bên phải cho toán hạng bên trái

Ex: C = A + B sẽ gán giá trị của A + B vào trong C

2

+= (Phép cộng và gán)

Nó cộng giá trị toán hạng phải với toán hạng trái và gán kết quả cho toán hạng trái

Ex: C += A tương đương với C = C + A

3

−= (Phép trừ và gán)

Nó trừ toán hạng phải từ toán hạng trái và gán kết quả cho toán hạng trái

Ex: C -= A tương đương với C = C - A

4

*= (Phép nhân và gán)

Nó nhân toán hạng phải với toán hạng trái và gán kết quả cho toán hạng trái

Ex: C *= A tương đương với C = C * A

5

/= (Phép chia và gán)

Nó chia toán hạng trái cho toán hạng phải và gán kết quả cho toán hạng trái

Ex: C /= A tương đương với C = C / A

6

%= (Phép chia lấy phần dư và gán)

Chia lấy phần dư toán hạng trái cho toán hạng phải và gán kết quả là phần dư cho toán hạng trái

Ex: C %= A tương đương với C = C % A

Ghi chú − Cùng theo mạch phát triển logic cho các toán tử thao tác Bit, vì thế chúng ta sẽ có các toán tử sau: <<=, >>=, >>=, &=, |= và ^=.

Ví dụ

Ví dụ dưới đây về sử dụng các toán tử thao tác Bit trong JavaScript:

<html>
   <body>
   
      <script type="text/javascript">
         <!--
            var a = 33;
            var b = 10;
            var linebreak = "<br />";
         
            document.write("Value of a => (a = b) => ");
            result = (a = b);
            document.write(result);
            document.write(linebreak);
         
            document.write("Value of a => (a += b) => ");
            result = (a += b);
            document.write(result);
            document.write(linebreak);
         
            document.write("Value of a => (a -= b) => ");
            result = (a -= b);
            document.write(result);
            document.write(linebreak);
         
            document.write("Value of a => (a *= b) => ");
            result = (a *= b);
            document.write(result);
            document.write(linebreak);
         
            document.write("Value of a => (a /= b) => ");
            result = (a /= b);
            document.write(result);
            document.write(linebreak);
         
            document.write("Value of a => (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>

Kết quả

Value of a => (a = b) => 10
Value of a => (a += b) => 20 
Value of a => (a -= b) => 10 
Value of a => (a *= b) => 100 
Value of a => (a /= b) => 10
Value of a => (a %= b) => 0
Set the variables to different values and different operators and then try...

Toán tử hỗn hợp

Sau đây, chúng ta sẽ bàn luận hai toán tử mà khá hữu ích trong JavaScript: Toán tử điều kiện (? :) và toán tử typeof.

Toán tử điều kiện (? :)

Toán tử điều kiện đầu tiên tính toán một biểu thức để xem nó là true hoặc false và sau đó thực thi một trong hai lệnh đã cung cấp phụ thuộc vào kết quả của sự tính toán.

STT Toán tử và Miêu tả
1

? : (Điều kiện )

Nếu điều kiện là true ? Thì giá trị X : Nếu không thì giá trị Y

Ví dụ

Bạn thử đoạn code sau để hiểu cách toán tử điều kiện làm việc trong JavaScript:

<html>
   <body>
   
      <script type="text/javascript">
         <!--
            var a = 10;
            var b = 20;
            var linebreak = "<br />";
         
            document.write ("((a > b) ? 100 : 200) => ");
            result = (a > b) ? 100 : 200;
            document.write(result);
            document.write(linebreak);
         
            document.write ("((a < b) ? 100 : 200) => ");
            result = (a < b) ? 100 : 200;
            document.write(result);
            document.write(linebreak);
         //-->
      </script>
      
      <p>Set the variables to different values and different operators and then try...</p>
   </body>
</html>

Kết quả

((a > b) ? 100 : 200) => 200 
((a < b) ? 100 : 200) => 100
Set the variables to different values and different operators and then try...

Toán tử typeof

Toán tử typeof là một toán tử một ngôi mà được đặt trước toán hạng đơn của nó, mà có thể là bất cứ kiểu nào. Giá trị của nó là một chuỗi chỉ dẫn kiểu dữ liệu của toán hạng.

Toán tử typeof ước lượng "number", "string", hoặc "boolean" nếu toán hạng của nó là giá trị số, chuỗi, hoặc logic và trả về kết quả là true hoặc false trên sự ước lượ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"

Ví dụ

Đoạn code sau chỉ cách sử dụng toán tử typeof.

<html>
   <body>
      
      <script type="text/javascript">
         <!--
            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>Set the variables to different values and different operators and then try...</p>
   </body>
</html>

Kết quả

Result => B is String 
Result => A is Numeric
Set the variables to different values and different operators and then try...

Loạt bài hướng dẫn học lập trình Javascript cơ bản và nâng cao của chúng tôi dựa trên nguồn tài liệu của: Tutorialspoint.com

Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

Các bài học JavaScript khác tại VietJack: