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
(||
).
AND
và OR
Thực Hiện Đánh Giá Kiểu Short-Circuit
Trong TypeScript, AND
và OR
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.