-->

10. Kiểu dữ liệu số trong JavaScript (Phần 3) - Khái quát về kiểu dữ liệu BigInt

tháng 12 15, 2023

Dẫn nhập

Ở các bài trước, Kteam đã giới thiệu tới các bạn về Các thuộc tính và phương thức với kiểu dữ liệu Number trong Javascript.

Ở bài này, các bạn sẽ được biết thêm về một kiểu dữ liệu cơ bản khác trong Javascript – BigInt


Nội dung

Để nắm vững nội dung bài này, các bạn cần có kiến thức về:

  • Kiểu dữ liệu số (Number) trong Javascript

Nội dung mà chúng ta sẽ được tiếp cận:

  • Giới thiệu về kiểu dữ liệu BigInt
  • Các đặc điểm của bigInt

Giới thiệu về bigint

Về cơ bản, BigInt cũng tương tự như number, đều là số. Nhưng giữa chúng có một sự khác biệt đáng kể.

    Khởi tạo một bigint

    Có hai cách để khởi tạo BigInt

    • Cách 1: Thêm kí tự “n” vào phía sau một số nguyên.
    • Cách 2: Sử dụng Constructor bigint

    Cú pháp:

    BigInt(<value>)

    Yêu cầu:

    • <value> phải là một giá trị nguyên, hoặc là một Number-String, hay có dạng một chuỗi giá trị hợp lệ.

      Ví dụ:


      Đặc điểm của bigint

      Đặc điểm cơ bản nhất của bigint là nó cho phép làm việc với các số nguyên mà không bị giới hạn về độ lớn. Ngoài ra, bigint cũng cho phép thực hiện hầu hết các toán tử giống như trong number.

      Lưu ý: Đối với phép chia, thì bigint sẽ cho kết quả khác với number (vì bigint chỉ cho phép số nguyên)

      Bên cạnh đó, các toán tử so sánh cũng có thể được dùng một cách bình thường giữa number và bigint:

      Tuy nhiên, việc dùng các toán tử số học giữa bigint và number sẽ dẫn đến lỗi:

      Mở rộng:

      Các toán tử trên bit cũng có thể được dùng trên bigint giống như là trên một number, ngoại trừ toán tử >>> (unsigned right shift operator)

      Vì việc ép kiểu giữa các giá trị Number và giá trị BigInt có thể dẫn đến mất độ chính xác, nên:

      • Chỉ sử dụng giá trị BigInt khi các giá trị lớn hơn 53 được mong đợi một cách hợp lý.
      • Không ép kiểu giữa giá trị BigInt và giá trị Number.

      Kết luận

      Ở bài này, các bạn đã được làm quen với một kiểu dữ liệu mới: bigint

      Post Advertisement
      Post Advertisement