Kiểu dữ liệu nào không phải là javascript nguyên thủy

Các kiểu dữ liệu có thể là một khái niệm khó hiểu. Nhưng với tư cách là lập trình viên, chúng ta sử dụng các kiểu dữ liệu hàng ngày – vì vậy chúng là thứ chúng ta nên hiểu

Câu hỏi đặt ra là máy tính lưu trữ các loại dữ liệu này như thế nào?

Trong JavaScript, các loại dữ liệu được chia thành hai loại và máy tính xử lý từng loại khác nhau. Chúng tôi có các kiểu dữ liệu nguyên thủy và các kiểu dữ liệu tham chiếu. Nhưng những cái này là gì?

Các kiểu dữ liệu nguyên thủy trong JavaScript

Các kiểu dữ liệu này khá đơn giản và đôi khi được coi là mức triển khai thấp nhất của ngôn ngữ lập trình. Chúng không phải là đối tượng và không có phương thức

Ví dụ về các kiểu dữ liệu như vậy là số, chuỗi, booleans, null và không xác định

Nhưng bạn có thể thắc mắc về các chuỗi, bởi vì chúng có các phương thức. Thực tế là, JavaScript chuyển đổi các chuỗi nguyên thủy thành các đối tượng chuỗi, do đó có thể sử dụng các phương thức đối tượng chuỗi

Các kiểu dữ liệu nguyên thủy được xử lý như thế nào trong JavaScript?

Khi bạn khai báo một kiểu dữ liệu nguyên thủy trong JavaScript, nó sẽ được lưu trữ trên một ngăn xếp. Ngăn xếp là một cấu trúc dữ liệu đơn giản mà máy tính sử dụng để lưu trữ và truy xuất dữ liệu nhanh chóng

Kiểu dữ liệu nguyên thủy trên ngăn xếp được xác định bằng tên biến mà bạn đã sử dụng để khai báo trong chương trình của mình. Với mỗi kiểu dữ liệu nguyên thủy bạn tạo, dữ liệu sẽ được thêm vào ngăn xếp

Để thực hiện điều này, giả sử chúng ta khai báo một biến, numOne và đặt giá trị cho nó là 50. Chúng tôi tiếp tục tạo một biến khác, numTwo và gán cho nó cùng một giá trị là 50. Vì vậy, cả hai biến có cùng giá trị

Điều xảy ra trên ngăn xếp là máy tính tạo chỗ cho numOne và lưu trữ giá trị được chỉ định của nó trên ngăn xếp. Khi numTwo được tạo, máy tính lại tạo chỗ và lưu trữ 50 trên ngăn xếp. Không quan trọng là cả hai biến được gán cùng một giá trị

Điều gì sẽ xảy ra nếu trong quá trình mã hóa, chúng tôi quyết định cập nhật giá trị của numOne thành 100?

numOnenumTwo được lưu trữ khác nhau trên ngăn xếp nên việc cập nhật một trong số chúng sẽ không ảnh hưởng đến cái kia. Và chúng tôi có thể thử nghiệm điều đó bằng cách thực sự dùng thử trong trình chỉnh sửa mã của chúng tôi

Ghi nhật ký numOne vào bảng điều khiển sẽ xuất ra 100 và ghi nhật ký numTwo sẽ xuất ra 50. Vì vậy, trên thực tế, hai biến không có mối quan hệ với nhau

let numOne = 50;
let numTwo = numOne; //numTwo=numOne=50
numOne = 100;
console.log[numOne]; //outputs 100
console.log[numTwo]; //outputs 50

Bây giờ chúng ta đã thấy việc xử lý các kiểu dữ liệu nguyên thủy dễ dàng như thế nào, hãy xem các kiểu dữ liệu tham chiếu tương tự hoạt động như thế nào.

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

Các kiểu dữ liệu tham chiếu, không giống như các kiểu dữ liệu nguyên thủy, có bản chất động. Đó là, chúng không có kích thước cố định

Hầu hết chúng được coi là đối tượng, và do đó có các phương thức. Ví dụ về các kiểu dữ liệu như vậy bao gồm mảng, hàm, tập hợp và tất cả các kiểu đối tượng khác

Sự khác biệt giữa các kiểu dữ liệu nguyên thủy và tham chiếu là gì?

Sự khác biệt xuất hiện khi máy tính phải lưu trữ kiểu dữ liệu tham chiếu. Khi bạn tạo một biến và gán cho nó một giá trị là kiểu dữ liệu tham chiếu, máy tính không lưu trực tiếp kiểu dữ liệu đó vào biến đó [như trường hợp của kiểu nguyên thủy]

Những gì bạn đã gán cho biến đó là một con trỏ trỏ đến vị trí của kiểu dữ liệu đó trong bộ nhớ. Gây nhầm lẫn?

Như bạn có thể thấy trong hình trên, chúng tôi hiện có hai cấu trúc dữ liệu. Một ngăn xếp, và một đống. Giả sử chúng ta đã khai báo một đối tượng, chẳng hạn. Bản thân đối tượng được lưu trữ trên một đống và con trỏ của nó được lưu trữ trên một ngăn xếp. Con trỏ được xác định bởi tên biến của đối tượng và trỏ tới đối tượng đó

Bây giờ, chúng ta có thể tạo một biến,

let object1 = {
name:'Bingeh',
age:18
};
let object2 = object1;

//updating object1,
object1.age = 20;

console.log[object2]; //we see that object2 also updates the age attribute
2, và gán một đối tượng cho nó. Nếu như trước đây, chúng ta tạo một biến khác là
let object1 = {
name:'Bingeh',
age:18
};
let object2 = object1;

//updating object1,
object1.age = 20;

console.log[object2]; //we see that object2 also updates the age attribute
3 và gán nó cho
let object1 = {
name:'Bingeh',
age:18
};
let object2 = object1;

//updating object1,
object1.age = 20;

console.log[object2]; //we see that object2 also updates the age attribute
2. Điều đó có nghĩa là một đối tượng khác sẽ được tạo trên heap?

Vì đối tượng đã tồn tại trên heap, nên cả

let object1 = {
name:'Bingeh',
age:18
};
let object2 = object1;

//updating object1,
object1.age = 20;

console.log[object2]; //we see that object2 also updates the age attribute
3 và
let object1 = {
name:'Bingeh',
age:18
};
let object2 = object1;

//updating object1,
object1.age = 20;

console.log[object2]; //we see that object2 also updates the age attribute
2 đều trỏ đến cùng một đối tượng

Một sự khác biệt khác xuất hiện khi chúng tôi cập nhật

let object1 = {
name:'Bingeh',
age:18
};
let object2 = object1;

//updating object1,
object1.age = 20;

console.log[object2]; //we see that object2 also updates the age attribute
2. Nếu chúng tôi ghi cả hai biến vào bảng điều khiển, chúng tôi sẽ thấy rằng thay đổi đã ảnh hưởng đến cả hai. Điều này là do chúng đang trỏ đến cùng một đối tượng trên heap – và việc cập nhật một biến tất nhiên sẽ ảnh hưởng đến biến kia

let object1 = {
name:'Bingeh',
age:18
};
let object2 = object1;

//updating object1,
object1.age = 20;

console.log[object2]; //we see that object2 also updates the age attribute
Kết thúc

Bây giờ bạn đã biết sự khác biệt giữa các kiểu dữ liệu nguyên thủy và tham chiếu. Điều quan trọng là phải biết những điểm khác biệt này – đặc biệt là khi bạn gặp lỗi như 'tham chiếu con trỏ null' - để bạn có thể tìm ra lý do tại sao chúng lại xảy ra

Điều này đôi khi xảy ra với các nhà phát triển Java, vì vậy tôi hy vọng rằng bài viết này sẽ giúp bạn giải tỏa mọi nghi ngờ

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

Njong Emy

Kỹ thuật máy tính đại học, tập trung vào phát triển frontend. HTML/CSS/Bootstrap/JS/Tailwind. Nghiện Canva quá. ]

Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Kiểu dữ liệu nào là nguyên thủy trong JavaScript?

Trong JavaScript, dữ liệu nguyên thủy [giá trị nguyên thủy, kiểu dữ liệu nguyên thủy] là dữ liệu không phải là đối tượng và không có phương thức hoặc thuộc tính. .
chuỗi
con số
cố chấp
boolean
không xác định
Biểu tượng

Cái nào không phải là loại nguyên thủy?

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.

Cái nào không phải là không

Trả lời Câu hỏi #146460 trong Lập trình & Khoa học Máy tính cho Joshua. Kiểu dữ liệu nào sau đây không phải là kiểu dữ liệu nguyên thủy trong Java? . Do đó, chuỗi là kiểu dữ liệu không nguyên thủy duy nhất trong danh sách này. char. Therefore, string is the only one non-primitive data type in this list.

Mảng có phải là kiểu dữ liệu nguyên thủy trong JavaScript không?

Các số, giá trị boolean và các loại null và không xác định là nguyên thủy. Đối tượng, mảng và hàm là các loại tham chiếu . Kiểu nguyên thủy có kích thước cố định trong bộ nhớ. Ví dụ: một số chiếm tám byte bộ nhớ và giá trị boolean có thể được biểu thị chỉ bằng một bit.

Chủ Đề