Các kiểu dữ liệu không nguyên thủy trong JavaScript với ví dụ

LoạiDescriptionstringĐược sử dụng để biểu thị các chuỗisốĐược sử dụng để biểu thị số nguyên hoặc dấu phẩy độngbigintĐược sử dụng để biểu thị các số nguyên lớn hơn 253 - 1booleanĐược sử dụng để biểu thị đúng hoặc saikhông xác địnhĐược sử dụng để biểu thị một giá trị chưa được gánbiểu tượngĐược sử dụng để biểu thị các mã định danh duy nhấtnullĐược sử dụng để biểu thị sự vắng mặt có chủ ý của một giá trị

  1. Các loại không nguyên thủy

TypeDescriptionobjectĐược sử dụng để biểu thị cấu trúc dữ liệu phức tạp với một tập hợp các thuộc tính và phương thức

All JavaScript values, except primitives, are objects.

Giá trị có thể thay đổi là những giá trị có thể được sửa đổi sau khi tạo
Giá trị bất biến là những giá trị không thể sửa đổi sau khi tạo

Vì vậy, sự khác biệt cơ bản giữa nguyên thủy và không nguyên thủy là các giá trị nguyên thủy là bất biến và các giá trị không nguyên thủy có thể thay đổi và Nguyên thủy được lưu trữ theo giá trị trong khi (đối tượng) không nguyên thủy được lưu trữ theo tham chiếu

Điều quan trọng cần lưu ý ở đây là biến lưu trữ giá trị gốc vẫn có thể được gán lại một giá trị mới như trong Ví dụ 1, nhưng không thể thay đổi giá trị hiện tại như trong Ví dụ 2. Một giá trị nguyên thủy có thể được thay thế, nhưng nó không thể được thay đổi trực tiếp

ví dụ 1

let string = 'hello world'
string = 'this is a string';
console.log(string) // Output -> 'this is a string'

ví dụ 2

let string = 'this is a string'
string[0] = 'T'
console.log(string) // Output -> 'this is a string.'


Làm thế nào để các giá trị nguyên thủy như chuỗi có phương thức toUpperCase()?

Có nhiều điều người ta muốn làm với các giá trị nguyên thủy (số, chuỗi, v.v. ) chẳng hạn như tìm độ dài của chuỗi, chuyển đổi chuỗi thành chữ hoa hoặc chữ thường, v.v.
Như vậy Javascript cho phép chúng ta làm việc với Primitive như thể chúng là các đối tượng. Để điều đó hoạt động, một "trình bao bọc đối tượng" đặc biệt cung cấp chức năng bổ sung được tạo ra để chúng ta có thể truy cập các phương thức đó và sau đó bị hủy sau khi hoàn thành công việc

Nguyên thủy ngoại trừ null và không xác định cung cấp nhiều phương pháp hữu ích
"Các trình bao bọc đối tượng" khác nhau đối với từng kiểu nguyên thủy và được gọi là. Chuỗi, Số, Boolean và Biểu tượng. Vì vậy, họ cung cấp các bộ phương pháp khác nhau

ví dụ 3

let str = "javascript";
console.log( str.toUpperCase() ); // JAVASCRIPT

Trong Ví dụ 3 khi chúng ta truy cập thuộc tính của nó, một đối tượng đặc biệt được tạo có các phương thức hữu ích, như toUpperCase()
Phương thức đó chạy và trả về một chuỗi mới. Sau đó
đối tượng đặc biệt bị hủy, để lại str nguyên thủy

Giá trị không nguyên thủy có thể thay đổi như thế nào

Ví dụ 4

let arr = [ 'one', 'two', 'three' ];
arr[0] = 'ONE';
console.log(arr) // Output -> [ 'ONE', 'two', 'three' ] 

Trong ví dụ 4, chúng tôi đang thay đổi trạng thái của biến arr và thay đổi giá trị của chính nó khi giá trị tại chỉ số 0 được thay đổi từ one thành ONE

Loại toán tử

Toán tử typeof trả về một chuỗi cho biết loại biến JavaScript

typeof "hello" // "string"

typeof 0 // "number"

typeof 1n // "bigint"

typeof true // "boolean"

typeof undefined // "undefined"

typeof Symbol("id") // "symbol"

typeof {} // "object"

typeof null // "object"

Tại sao null là một đối tượng

Đây là một lỗi nói rằng null là một đối tượng và rất tiếc là không thể sửa được vì nó sẽ phá vỡ mã hiện có của mọi người

những gì không

Kiểu dữ liệu không nguyên thủy được gọi là kiểu tham chiếu vì chúng tham chiếu đến các đối tượng. Sự khác biệt chính giữa các kiểu dữ liệu nguyên thủy và không nguyên thủy là. Các kiểu nguyên thủy được xác định trước (đã được xác định) trong Java. Các loại không nguyên thủy được tạo bởi lập trình viên và không được xác định bởi Java (ngoại trừ String ).

không phải là gì

Kiểu dữ liệu không nguyên thủy đề cập đến các đối tượng và do đó chúng được gọi là kiểu tham chiếu. Ví dụ về các loại không nguyên thủy bao gồm Chuỗi, Mảng, Lớp, Giao diện , v.v.

không phải là gì

Các loại dữ liệu không nguyên thủy được phân loại thành Mảng, Lớp, Chuỗi và Giao diện .

không phải là gì

Kiểu dữ liệu không nguyên thủy hoặc kiểu dữ liệu tham chiếu tham chiếu đến thể hiện hoặc đối tượng . Họ không thể lưu trữ giá trị của một biến trực tiếp trong bộ nhớ. Họ lưu trữ một địa chỉ bộ nhớ của biến. Không giống như các kiểu dữ liệu nguyên thủy do Java định nghĩa, các kiểu dữ liệu không nguyên thủy do người dùng định nghĩa.