Các kiểu dữ liệu trong JavaScript

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ủykiể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);
  • number là 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 đến Infinity hoặc NaN (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 BigInt hoặc điều chỉnh số chữ số thập phân bằng cách sử dụng toFixed().

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);
  • string là 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ị: true hoặc false. 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);
  • null là 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);
  • undefined là 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);
  • bigint là một kiểu dữ liệu được sử dụng để xử lý các số nguyên lớn. bigint cho phép biểu diễn chính xác các số nguyên lớn mà kiểu number không thể biểu diễn được. Các giá trị kiểu bigint được biểu diễn bằng cách thêm ký tự n vào cuối một số.
  • bigint là 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, bigintnumber khô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
  • Symbol là 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, Symbol có giá trị duy nhất, nên dù nội dung giống nhau, chúng vẫn được coi là các Symbol khá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
  • Object là 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
  • Array là 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 địnhrõ 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.

YouTube Video