6. Kiểu dữ liệu Biglnt trong JavaScript

Trong JavaScript, kiểu dữ liệu số chỉ có thể đại diện cho các số nhỏ hơn (2^53 – 1) và lớn hơn – (2^53 – 1). Tuy nhiên, nếu ta cần sử dụng một kiểu dữ liệu ở dạng số lớn hơn như vậy, ta có thể sử dụng kiểu dữ liệu BigInt. Kiểu dữ liệu số BigInt được sử dụng bằng cách thêm nvào cuối một số nguyên.

Ví dụ:

var a = 900719925124740998n;
var b = a + 1n;
console.log(b);

Chú ý

Kiểu dữ liệu BigInt đã được giới thiệu trong phiên bản JavaScript mới hơn và không được hỗ trợ bởi nhiều trình duyệt bao gồm Safari.

7. Kiểu dữ liệu undefined trong JavaScript

Kiểu dữ liệu không xác định đại diện cho giá trị không được gán cho một biến nào đó. Nếu một biến được khai báo nhưng giá trị không được gán, thì giá trị của biến đó sẽ là undefinedhay không được xác định.

Ví dụ:

<script>
var myName; //biến myName sẽ có giá trị là undefined và kiểu dữ liệu là undefined
</script>

Ngoài ra, giá trị undefined còn có thể nhận được bằng cách gán trực tiếp:

<script>
var myName = "Thành Nguyễn"; //biến myName có kiểu dữ liệu là string
myName = undefined; //biến myName có kiểu dữ liệu là undefined
</script>

Chú ý

Không nên gán undefined cho một biến. Thông thường, null được sử dụng để gán giá trị chưa được biết cho một biến.

8. Kiểu dữ liệu null trong JavaScript

Trong JavaScript, nulllà một giá trị đặc biệt đại diện cho giá trị rỗng hoặc không xác định. Bạn chỉ cần khai báo biến bằng null là có thể sử dụng kiểu này.

Ví dụ:

let bienNull = null;

Có vẻ đơn giản đúng không nhưng không. Nhưng vấn đề này mới làm đau đầu bao nhiêu chuyên gia lập trình đây này. Hãy xem ví dụ sau nhé:

document.write(bienNull);
// Kết quả: null
//Và ta lại có:
document.write(typeof bienNull);
// Kết quả: Object

Thực ra vấn đề ở đây là phân biệt các kiểu giá trị(theo ý hiểu riêng của mình). Nhưng có đôi lúc lại khó có thể làm được điều này vì những dự án lớn. Còn ở đây chỉ là những ví dụ nho nhỏ nên ta sẽ cảm thấy khá là đơn giản. Cùng với đó là việc phân biệt kiểu undefined và kiểu null như thế nào? Nhiều bạn sẽ nhầm lẫn giữa hai kiểu dữ liệu này. Các bạn nghĩ hai kiểu này đều nói về một biến không xác định đúng không nào?

  • Một biến được khai báo mà không gán giá trị khởi tạo thì JavaScript sẽ đặt cho nó giá trị mặc định là undefined, kiểu dữ liệu cũng là undefined.
  • Khi bạn kiểm tra kiểu dữ liệu bằng từ khóa typeof thì sẽ ra kiểu dữ liệu và undefined. Còn với null, nó có nghĩa là không có gì. Nhưng sự khác biệt là mặc dù biến đó không có giá trị nhưng kiểu dữ liệu của nó là object.

9. Kiểu dữ liệu Symbol trong JavaScript

Kiểu dữ liệu này đã được giới thiệu trong phiên bản JavaScript mới hơn (từ ES2015). Một giá trị có kiểu dữ liệu Symbol có thể được coi là một giá trị kiểu Symbol. Symbol là một giá trị căn bản, có tính bất biến và có tính duy nhất. Dữ liệu được sắp xếp vào kiểu Symbol là những dữ liệu được tạo ra bằng hàm và là dữ liệu bảo mật mang tính đặc trưng. Kiểu này mỗi giá trị là duy nhất và không thể bị sửa đổi. Giá trị Symbol được tạo ra từ hàm Symbol(), vì nó luôn tạo ra một giá trị duy nhất trên toàn hệ thống nên kiểu này thường được dùng để định danh các đối tượng cho mục đích tìm kiếm lại.

Ví dụ:

var sym1 = Symbol();
var sym2 = Symbol(); //sym2 luôn khác sym1

Symbol được dùng vào những trường hợp như tạo ra những dữ liệu có cấu trúc mà trong đó người lập trình muốn giấu đi một số thành phần giá trị nhạy cảm với mục đích bảo mật. Đặc điểm nổi bật của kiểu dữ liệu này:

  • Tính độc nhất: bạn không thể tạo ra được 2 hay nhiều dữ liệu Symbol giống nhau.
  • Tính bảo mật: bạn không thể truy cập vào thành phần bên trong một Symbol theo phương pháp thông thường.

10. Kiểu dữ liệu đối tượng – Object trong JavaScript

Object là một kiểu dữ liệu phức hợp, cho phép chúng ta lưu trữ các tập hợp dữ liệu. Dữ liệu được xếp vào kiểu object là những dữ liệu mà trong đó bao gồm nhiều thành phần giá trị và các thành phần được giá trị xắp xếp theo một cấu trúc thứ tự, trật tự nhất định. Hầu hết kiểu dữ liệu này được phân thành 7 nhóm nhỏ. Thực sự ở bài này thì mình không thể nói hết được nên mình sẽ dành ra những bài sau để nói kỹ hơn nhé.

Ví dụ:

<script>
    var SinhVien = {
        name:"Thành",
        gender:"Nam",
        year:2002
    }
// Thuộc tính name với giá trị là chuỗi Thành.
// Thuộc tính gender với giá trị là chuỗi Nam.
// Thuộc tính year với giá trị là số 2002.
</script> 

JavaScript là một ngôn ngữ động, tức là JavaScript sẽ tự động xác định kiểu dữ liệu của biến. Điều đó cũng có nghĩa là một biến có thể thuộc một kiểu dữ liệu bất kỳ và sau này nó có thể được thay đổi thành kiểu dữ liệu khác.

Lưu ý

  • Những cái tên còn được gọi là “thuộc tính” của đối tượng, giá trị của những cái tên còn được gọi là “giá trị thuộc tính của đối tượng”.
  • Giá trị null cũng được xếp vào kiểu dữ liệu object.

Ví dụ:

<script type="text/javascript">
var x = null; // dữ liệu trong biến x được xếp vào kiểu object
var a = {id: '1', name: table}; // dữ liệu biến a được xếp vào kiểu object - nhóm object
const b = [1, 3, 4, 5]; // dữ liệu b được xếp vào kiểu object
</script>

Nói chung đến lúc chúng ta nói về một kiểu dữ liệu mà có tính đồ sộ và phức tạp nhất. Chúng tôi khuyến khích bạn nên tìm hiểu về object trong javascript. Hãy theo đường link đó nhé. ở đây chúng ta sẽ giới thiệu về Object. Nghĩa là Object một đối tượng, là một tập hợp dữ liệu và các chức năng. Đối tượng có thể new được tạo bằng cách thực hiện một toán tử theo sau là tên của loại đối tượng sẽ được tạo. Ta sẽ học kỹ hơn ở bài sau nhé!

11. Dữ liệu kiểu mảng – array trong JavaScript

Trong JavaScript, array còn được gọi là mảng, nó là một trường hợp đặc biệt của đối tượng(thật ra, mảng có kiểu dữ liệu là object). Mảng là một loại biến đặc biệt có thể lưu trữ nhiều giá trị đồng thời, mỗi giá trị được gọi là một phần tử mảng.

Ví dụ:

<script>
var mobile = ["HTC","Nokia","SamSung"];
// Phần tử thứ nhất có giá trị là HTC.
// Phần tử thứ nhất có giá trị là Nokia.
// Phần tử thứ nhất có giá trị là SamSung.
</script>

12. Dữ liệu dạng hàm – function trong JavaScript

Về mặt cơ bản, hàm là một thành phần trong Js(tương tự biến hằng,..) có thể chứa kịch bản Js(một hay nhiều statement) giúp người lập trình có thể thực hiện một hành động(action) một cách dễ dàng và ngắn gọn. Tuy nhiên chính vì việc người lập trình có thể gán nó vào một biến hay hằng cũng như kết quả của hàm có thể trả về dữ liệu thuộc một trong các kiểu dữ liệu trên, nên hàm cũng được coi là một kiểu dữ liệu.

Ví dụ:

Var f1 = alert(‘Đây là một hàm’);

Var f2 = console.log(‘đây là một hàm’);

13. Cách xác định kiểu của dữ liệu

Để xác định kiểu của một dữ liệu nào đó thì ta sử dụng toán tử typeof.

Ví dụ:

let a;
a = 100;
console.log(typeof(a));
a = "JS";
console.log(typeof(a));
a = null;
console.log(typeof(a));

Ta cũng có thể kiểm tra kiểu dữ liệu của một biến:

<script>
var year = 2002;
var a = typeof year; //number
</script>

Chú ý

Toán tử typeof đã trả về kiểu dữ liệu object cho kiểu null.