Các kiểu dữ liệu trong JavaScript
Bài viết này giải thích các kiểu dữ liệu trong JavaScript.
YouTube Video
Các kiểu dữ liệu trong JavaScript
JavaScript có các kiểu dữ liệu để phân loại giá trị, có thể được chia làm hai loại chính: kiểu dữ liệu nguyên thủy và kiểu dữ liệu đối tượng. Kiểu dữ liệu xác định loại dữ liệu được lưu trong biến và ảnh hưởng đến cách sử dụng nó.
Các kiểu dữ liệu nguyên thủy
Kiểu dữ liệu nguyên thủy là những kiểu dữ liệu đơn giản đại diện cho một giá trị duy nhất. JavaScript có 7 kiểu dữ liệu nguyên thủy sau.
number
1let num = 42;
2let pi = 3.14;
3
4console.log("Value of num:", num);
5console.log("Value of pi:", pi);numberlà kiểu dữ liệu được sử dụng để xử lý các giá trị số, bao gồm số nguyên và số thập phân. Xử lý các giá trị vượt quá giới hạn nhất định sẽ dẫn đếnInfinityhoặcNaN(Không phải là số).
1// Decimal calculations
2console.log(0.1 + 0.2 === 0.3); // false
3console.log(0.1 + 0.2); // 0.30000000000000004
4
5// Calculations with large numbers
6console.log(9007199254740991 + 1); // correct value
7console.log(9007199254740991 + 2); // incorrect value
- Trong JavaScript, các số được biểu diễn dưới dạng số dấu phẩy động. Do đó, một số số thập phân (đặc biệt là những số không thể được biểu diễn chính xác trong hệ nhị phân) có thể không được biểu thị chính xác.
- Khi cần các phép tính chính xác, chẳng hạn như với các giá trị tiền tệ, cần phải tránh các lỗi làm tròn như vậy. Ví dụ, bạn có thể sử dụng
BigInthoặc điều chỉnh số chữ số thập phân bằng cách sử dụngtoFixed().
string
1let greeting = "Hello, world!";
2let char = 'A';
3const message = `"${greeting}" in JavaScript`;
4
5console.log("Value of greeting:", greeting);
6console.log("Value of char:", char);
7console.log("Value of message:", message);stringlà kiểu dữ liệu được sử dụng để xử lý văn bản, đại diện cho một chuỗi ký tự. Ký tự được biểu diễn bằng cách bao bọc văn bản bằng dấu nháy đơn (') hoặc nháy kép ("). Từ ES6 trở đi, chuỗi mẫu (template literals) cho phép dễ dàng nhúng biến bằng dấu backtick (). Để nhúng một biến, sử dụng cú pháp${}.
boolean
1let isAvailable = true;
2let hasError = false;
3
4console.log("Value of isAvailable:", isAvailable);
5console.log("Value of hasError:", hasError);booleanđại diện cho một giá trị logic và chỉ có hai giá trị:truehoặcfalse. Nó được sử dụng như kết quả của các biểu thức điều kiện hoặc làm một cờ hiệu (flag).
null
1let result = null;
2
3console.log("Value of result:", result);nulllà kiểu dữ liệu thể hiện rõ ràng không có giá trị.nullđược thiết lập bởi lập trình viên để chỉ ra sự trống rỗng có chủ ý.
undefined
1let score;
2let subject = undefined;
3
4console.log("Value of score:", score); // undefined
5console.log("Value of subject:", subject);undefinedlà kiểu dữ liệu có nghĩa là 'chưa được định nghĩa'.undefinedđược tự động gán khi một biến được khai báo nhưng chưa được gán giá trị.
bigint
1let bigIntValue = 9007199254740991n;
2let anotherBigInt = 123456789012345678901234567890n;
3
4console.log("Value of bigIntValue:", bigIntValue);
5console.log("Value of anotherBigInt:", anotherBigInt);bigintlà một kiểu dữ liệu được sử dụng để xử lý các số nguyên lớn.bigintcho phép biểu diễn chính xác các số nguyên lớn mà kiểunumberkhông thể biểu diễn được. Các giá trị kiểubigintđược biểu diễn bằng cách thêm ký tựnvào cuối một số.bigintlà một kiểu dữ liệu dùng để xử lý số nguyên với kích thước bất kỳ, không giới hạn phạm vi. Tuy nhiên,bigintvànumberkhông thể được thao tác trực tiếp với nhau, vì vậy cần phải cẩn thận.
Symbol
1let sym1 = Symbol('id');
2let sym2 = Symbol('id');
3
4console.log("sym1 === sym2:", sym1 === sym2); // false
Symbollà một kiểu dữ liệu được sử dụng để tạo ra các định danh duy nhất.Symbol()được sử dụng để tạo và có thể dùng làm thuộc tính của một đối tượng. Không giống như các kiểu dữ liệu nguyên thủy khác,Symbolcó giá trị duy nhất, nên dù nội dung giống nhau, chúng vẫn được coi là cácSymbolkhác nhau.
Các loại đối tượng
Các loại đối tượng là các cấu trúc dữ liệu có thể chứa nhiều giá trị. Một đối tượng là một tập hợp các cặp key-value và có thể có các thuộc tính và phương thức.
Object
1let person = {
2 name: "John",
3 age: 30,
4 isEmployee: true
5};
6console.log(person.name); // John
Objectlà một tập hợp các thuộc tính (cặp key-value) có thể lưu trữ nhiều loại dữ liệu khác nhau. Các đối tượng được biểu diễn bằng dấu ngoặc nhọn{}, và mỗi thuộc tính được kết nối bằng dấu:giữa key và giá trị.
Array
1let numbers = [10, 20, 30];
2console.log(numbers[0]); // 10
3console.log(numbers[1]); // 20
4console.log(numbers[2]); // 30
5console.log(numbers[3]); // undefined
Arraylà một danh sách chứa nhiều giá trị theo thứ tự. Mảng (Array) được biểu diễn bằng dấu ngoặc vuông[], và các giá trị được ngăn cách bằng dấu phẩy,. Mỗi phần tử được truy cập bằng cách sử dụng chỉ số bắt đầu từ 0.
Function
1function greet(name) {
2 return "Hello, " + name;
3}
4console.log(greet("Alice")); // Hello, Alice
- Hàm (Functions) là một loại đối tượng và là các khối mã lệnh có thể tái sử dụng. Các hàm có thể được định nghĩa bằng từ khóa
function.
Các loại đối tượng khác
- JavaScript cũng có các loại đối tượng tích hợp sẵn như
Date,RegExp,Map, vàSet. Chúng xử lý dữ liệu theo các trường hợp sử dụng cụ thể.
Chuyển đổi kiểu dữ liệu
Việc chuyển đổi kiểu dữ liệu ngầm định và rõ ràng thường xuyên xảy ra trong JavaScript.
Chuyển đổi kiểu dữ liệu ngầm định
- JavaScript có thể tự động chuyển đổi kiểu dữ liệu khi thực hiện các phép toán giữa các kiểu dữ liệu khác nhau.
1let result = 5 + "5"; // "55" (the number is converted to a string)
2
3console.log(result);- Trong ví dụ này, số
5được chuyển đổi ngầm định thành chuỗi, dẫn đến chuỗi"55".
Chuyển đổi kiểu dữ liệu rõ ràng
- Các nhà phát triển cũng có thể thực hiện chuyển đổi kiểu dữ liệu một cách rõ ràng.
1let num = "123";
2let convertedNum = Number(num); // Converts "123" to the number 123
3
4console.log(typeof num);
5console.log(typeof convertedNum);- Trong ví dụ này, hàm
Number()được sử dụng để chuyển đổi tường minh chuỗi"123"thành số123.
Kiểm tra kiểu dữ liệu
Trong JavaScript, bạn có thể sử dụng toán tử typeof để kiểm tra kiểu dữ liệu của một biến.
1// Output: The type of 42 is: number
2console.log('The type of 42 is:', typeof 42);
3
4// Output: The type of 42 is: bigint
5console.log('The type of 42n is:', typeof 42n);
6
7// Output: The type of "hello" is: string
8console.log('The type of "hello" is:', typeof "hello");
9
10// Output: The type of true is: boolean
11console.log('The type of true is:', typeof true);
12
13// Output: The type of undefined is: undefined
14console.log('The type of undefined is:', typeof undefined);
15
16// Output: The type of null is: object
17console.log('The type of null is:', typeof null);
18
19// Output: The type of Symbol() is: symbol
20console.log('The type of Symbol() is:', typeof Symbol());
21
22// Output: The type of {} is: object
23console.log('The type of {} is:', typeof {});
24
25// Output: The type of function () {} is: function
26console.log('The type of function () {} is:', typeof function () {});Kết luận
- Các kiểu dữ liệu nguyên thủy bao gồm
number,string,boolean,null,undefined, vàsymbol. - Các kiểu đối tượng bao gồm
Object,Array,Function, và một số loại khác. - Vì cả chuyển đổi kiểu tự động và chuyển đổi kiểu tường minh đều xảy ra, điều quan trọng là phải hiểu cách sử dụng đúng của các kiểu dữ liệu.
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.