Kiểu dữ liệu Symbol trong JavaScript
Khóa học JavaScript cơ bản

Danh sách bài học
Kiểu dữ liệu Symbol trong JavaScript
Dẫn nhập
Ở bài trước, Kteam đã giới thiệu đến các bạn về kiểu dữ liệu boolean trong JavaScript.
Trong bài này, chúng ta sẽ cùng nhau tìm hiểu về một kiểu dữ liệu khác: symbol
Nội dung
Để nắm được nội dung của bài này, bạn cần có kiến thức về:
- Kiểu dữ liệu số trong JavaScript
- Kiểu dữ liệu chuỗi trong JavaScript
Những nội dung mà chúng ta sẽ cùng tìm hiểu:
- Giới thiệu khái quát về Symbol trong JavaScript, tác dụng của Symbol
- Các thuộc tính, phương thức của Symbol
Kiểu dữ liệu symbol trong Js
Nếu bạn dùng google và dịch từ “symbol” sang tiếng Việt, thì nó có nghĩa là ký hiệu, hay là vật tượng trưng.
Ở một khía cạnh nào đó, ta cũng có thể hiểu symbol trong JavaScript theo nghĩa tương tự.
Trong JavaScript, symbol là một trong 7 loại kiểu dữ liệu “nguyên thủy” (tiếng Anh: primitive). 7 loại này bao gồm số (number, bigint), chuỗi (string), boolean, undefined, symbol và null.
Cấu trúc của symbol:
Một symbol sẽ bao gồm một key được đặt trong cụm từ “symbol”:
symbol(<key>)
- <key> có thể là một số, một chuỗi hay bất kì kiểu dữ liệu nào khác, miễn là nó hợp lệ
Khởi tạo một symbol
Để khởi tạo một giá trị kiểu symbol, ta dùng constructor Symbol:
Symbol(<value>)
Trong đó: <value> có thể có hoặc không. Nhưng nếu có,<value> phải là một giá trị hợp lệ, và nó có thể mang bất kỳ kiểu dữ liệu nào. Ở ví dụ bên dưới có sử dụng function – một kiến thức mới mẻ. Có thể hiểu đơn giản, là nó chứa 1 đống lệnh bên trong dùng để tái sử dụng. Kteam sẽ nói rõ hơn về function trong các bài tiếp theo.
Ví dụ:
a = Symbol('a')
// Symbol(a)
b = Symbol('1')
// Symbol(1)
t = Symbol(true)
// Symbol(true)
function f() { return 1;}
// Undefined
Symbol(f)
// Symbol(function f() { return 1;})
Sau khi khởi tạo, các giá trị này đều thuộc kiểu symbol:
typeof(a)
// 'symbol'
typeof(b)
// 'symbol'
typeof(t)
// 'symbol'
Đặc điểm của symbol
Tính độc nhất
Đối với kiểu dữ liệu symbol, thì mỗi giá trị là độc nhất trong một chương trình, có nghĩa là, không thể tồn tại hai giá trị symbol bằng nhau, ngoại trừ trường hợp ta dùng phép gán.
a = Symbol()
// Symbol()
b = Symbol()
// Symbol()
a == b
// false
Mời các bạn tiếp tục xem các ví dụ bên dưới:
a = Symbol(123)
// Symbol(123)
b = Symbol(123)
// Symbol(123)
a == b
// false
a = Symbol(true)
// Symbol(true)
b = Symbol(true)
// Symbol(true)
a == b
// false
Các giá trị symbol khi ép sang các kiểu dữ liệu khác:
Kiểu dữ liệu tương ứng |
Giá trị |
Ví dụ |
Boolean |
True |
|
Number |
Không thể chuyển từ symbol sang number |
|
String |
Chuỗi tương ứng |
|
Array |
Một array bao gồm các symbol |
|
Sử dụng symbol như là một thuộc tính của object
Vì tính độc nhất của symbol, nên nó có thể được dùng làm thuộc tính của một object.
sb = Symbol('aa')
// Symbol(aa)
obj = {
Name: "Kter",
Age: 18,
[sb]: "Dodoodo"
}
// { Name: 'Kter', Age: 18, [Symbol(aa)]: 'Dodoodo' }
console.log(obj[sb]);
// Dodoodo
// undefined
Kết luận
Qua bài này, các bạn đã biết về kiểu dữ liệu symbol trong JavaScript
Bài sau, Kteam sẽ cùng bạn củng cố qua Bài tập kiểu dữ liệu symbol trong JavaScript
Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.
Tải xuống
Tài liệu
Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Kiểu dữ liệu Symbol trong JavaScript dưới dạng file PDF trong link bên dưới.
Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com
Đừng quên like và share để ủng hộ Kteam và tác giả nhé!

Thảo luận
Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.
Nội dung bài viết
Tác giả/Dịch giả
Khóa học
Nếu bạn đang muốn bắt đầu học JavaScript thì đây chính là khóa học dành cho bạn. Trong khóa học này, Kteam sẽ cung cấp cho những kiến thức cơ bản nhất của ngôn ngữ lập trình JavaScript.
Khóa học này không đòi hỏi kiến thức nền tảng nhiều, nên giả sử như bạn chưa biết gì về lập trình, bạn vẫn có thể tham gia. Do đó dù bạn có là một người trái ngành cũng có thể tiếp cận - Đồng thời bạn cũng không cần phải là một thiên tài toán học để tham gia khóa học này 😉.
I can’t thank you enough!