Toán tử trong TypeScript

Toán tử trong TypeScript

Bài viết này giải thích về các toán tử trong TypeScript.

YouTube Video

Toán tử trong TypeScript

Toán tử trong TypeScript được sử dụng để thực hiện các phép tính số học, so sánh giá trị và thao tác logic. Vì TypeScript sử dụng các toán tử tương tự như JavaScript, nên chúng dễ làm quen, nhưng TypeScript cho phép các thao tác nghiêm ngặt hơn nhờ vào tính an toàn kiểu dữ liệu.

Các toán tử chính bao gồm:.

Toán tử Số học

Toán tử số học được sử dụng để thực hiện các phép tính số học.

Toán tử Mô tả Ví dụ Kết quả
+ Phép cộng 5 + 3 8
- Phép trừ 5 - 3 2
* Phép nhân 5 * 3 15
/ Phép chia 5 / 2 2.5
% Phần dư 5 % 2 1
++ Tăng lên một (tiền tố) let x = 5; ++x 6
-- Giảm đi một (tiền tố) 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);

Toán tử Gán giá trị

Toán tử gán sẽ gán giá trị ở bên phải vào biến ở bên trái.

Toán tử Mô tả Ví dụ Kết quả
= Gán giá trị x = 10 x = 10
+= Cộng và gán x += 5 x = 15
-= Trừ và gán x -= 5 x = 5
*= Nhân và gán x *= 2 x = 20
/= Chia và gán x /= 2 x = 5
%= Phần dư và gán x %= 3 x = 1
1let z = 5;
2z += 3;
3console.log(z);  // Outputs: 8
4
5z *= 2;
6console.log(z);  // Outputs: 16

Toán tử so sánh

Toán tử so sánh so sánh các giá trị và trả về true hoặc false.

Toán tử Mô tả Ví dụ Kết quả
== Bằng nhau (không so sánh kiểu) 5 == "5" true
=== Bằng nhau nghiêm ngặt (bao gồm kiểu) 5 === "5" false
!= Không bằng nhau (không so sánh kiểu) 5 != "5" false
!== Không bằng nhau nghiêm ngặt (bao gồm kiểu) 5 !== "5" true
> Lớn hơn 5 > 3 true
< Nhỏ hơn 5 < 3 false
>= Lớn hơn hoặc bằng 5 >= 5 true
<= Nhỏ hơn hoặc bằng 5 <= 3 false
1console.log('5 == "5"   :', 5 == "5");   // Outputs: true
2console.log('5 === "5"  :', 5 === "5");  // Outputs: false
3console.log('5 != "5"   :', 5 != "5");   // Outputs: false
4console.log('5 !== "5"  :', 5 !== "5");  // Outputs: true
5console.log('5 > 3      :', 5 > 3);      // Outputs: true
6console.log('5 < 3      :', 5 < 3);      // Outputs: false
7console.log('5 >= 5     :', 5 >= 5);     // Outputs: true
8console.log('5 <= 3     :', 5 <= 3);     // Outputs: false

Toán tử logic

Toán tử logic được sử dụng để kết hợp các biểu thức logic.

Toán tử Mô tả Ví dụ Kết quả
&& Và logic true && false false
|| Hoặc logic true || false true
! Phủ định !true false
1console.log('true && false :', true && false);  // Outputs: false
2console.log('true || false :', true || false);  // Outputs: true
3console.log('!true         :', !true);          // Outputs: false

Thứ tự ưu tiên của Toán tử Logic

Trong TypeScript, các toán tử logic thường được đánh giá theo thứ tự NOT trước, sau đó là AND, và cuối cùng là OR.

NOT Có Thứ Tự Ưu Tiên Cao Nhất

NOT là một toán tử một ngôi và được đánh giá với thứ tự ưu tiên cao nhất.

1console.log(!true || false);  // false
AND Có Ưu Tiên Cao Hơn OR

AND có thứ tự ưu tiên cao hơn OR, vì vậy phần AND sẽ được đánh giá trước.

1console.log(true || false && false);  // true

Do đó, phần AND (&&) sẽ được tính toán trước, và kết quả của nó được truyền cho OR (||).

ANDOR Thực Hiện Đánh Giá Kiểu Short-Circuit

Trong TypeScript, ANDOR thực hiện đánh giá kiểu short-circuit. Nếu kết quả được xác định bởi giá trị phía bên trái, biểu thức phía bên phải sẽ 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.

Xác Định Rõ Ràng Thứ Tự Ưu Tiên

Sử dụng dấu ngoặc để nhóm biểu thức rõ ràng có thể tránh 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 Trong Lập Trình

Khi sử dụng các toán tử logic, điều quan trọng là phải nhận thức được sự mơ hồ trong ngôn ngữ tự nhiên. Ví dụ, trong cụm từ 'một con chó trắng hoặc một con mèo,' nó có thể có nghĩa là 'một con chó trắng hoặc bất kỳ con mèo nào' hoặc 'một con chó trắng hoặc một con mèo trắng.'. Trong mã, nó có thể được viết như sau:.

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}

Vì ngôn ngữ tự nhiên có thể mơ hồ, cần thận trọng khi lập trình và thiết kế hệ thống.

Toán tử bit

Toán tử bit xử lý các số ở cấp độ bit.

Toán tử Mô tả Ví dụ Kết quả
& Và logic 5 & 1 1
` ` Hoặc logic 5 | 1
^ Hoặc loại trừ (XOR) 5 ^ 1 4
~ Phủ định (NOT) ~5 -6
<< Dịch sang trái 5 << 1 10
>> Dịch sang phải (Có dấu) 5 >> 1 2
>>> Dịch sang phải (Không dấu) 5 >>> 1 2
1console.log('5 & 1  :', 5 & 1);   // Outputs: 1  (AND operation)
2console.log('5 | 1  :', 5 | 1);   // Outputs: 5  (OR operation)
3console.log('5 ^ 1  :', 5 ^ 1);   // Outputs: 4  (XOR operation)
4console.log('~5     :', ~5);      // Outputs: -6 (NOT operation)
5console.log('5 << 1 :', 5 << 1);  // Outputs: 10 (Left shift operation)
6console.log('5 >> 1 :', 5 >> 1);  // Outputs: 2  (Right shift operation)
7console.log('5 >>> 1:', 5 >>> 1); // Outputs: 2  (Unsigned right shift operation)

Toán tử ba ngôi

Toán tử ba ngôi trả về các giá trị khác nhau dựa trên kết quả của một biểu thức điều kiện.

1let age = 20;
2let access = (age >= 18) ? "Allowed" : "Denied";
3console.log(access);  // Outputs: Allowed

Toán tử kiểu

Các toán tử kiểu của TypeScript bao gồm những điều sau:.

Toán tử Mô tả Ví dụ Kết quả
typeof Trả về kiểu của một biến typeof 123 "number"
instanceof Kiểm tra xem một đối tượng thuộc về một lớp cụ thể arr instanceof Array true
is Như một trình bảo vệ kiểu, kiểm tra xem giá trị có thuộc kiểu cụ thể hay không value is string true or false
 1console.log(typeof "Hello");  // "string"
 2console.log(typeof 42);       // "number"
 3
 4let arr: number[] = [1, 2, 3];
 5console.log("arr instanceof Array : ", arr instanceof Array); // true
 6
 7// Example of Type Guard
 8function isString(value: any): value is string {
 9  return typeof value === "string";
10}
11
12let value: any = "Hello";
13if (isString(value)) {
14  console.log("Value is a string:", value);  // "Value is a string: Hello"
15}

Các toán tử kiể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 của một biến.
  • Toán tử instanceof kiểm tra xem một đối tượng thuộc về một lớp cụ thể.
  • Toán tử is được sử dụng để kiểm tra xem giá trị có thuộc kiểu cụ thể hay không. Nó là một phần của trình bảo vệ kiểu của TypeScript.

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 giá trị cho biến.
  • Toán tử so sánh: So sánh các giá trị.
  • Toán tử logic: Kết hợp các điều kiện logic.
  • Toán tử thao tác bit: Thực hiện các phép toán ở mức bit.
  • Toán tử ba ngôi: Trả về các giá trị dựa trên điều kiện.
  • Toán tử kiểu có thể kiểm tra kiểu của một giá trị.

Trong TypeScript, các toán tử này có thể được sử dụng để viết các phép tính phức tạp và biểu thức điều kiện một cách hiệu quả.

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.

YouTube Video