Javascript có hoạt động theo tham chiếu không?
Sự khác biệt chính giữa hai loại này là việc truyền theo giá trị xảy ra khi gán nguyên hàm trong khi truyền theo tham chiếu khi gán đối tượng Show Hãy thảo luận về các giá trị và tài liệu tham khảo chi tiết hơn trong bài đăng này 1. Hiểu nguyên thủy và các đối tượngJavaScript cung cấp 2 loại kiểu dữ liệu. nguyên thủy và đối tượng Các số nguyên thủy là số, boolean, chuỗi, ký hiệu và giá trị đặc biệt 4 và 5
Loại thứ hai là đồ vật. Riêng đối tượng đơn giản, mảng, hàm, v.v. — đều là đối tượng
Nói cách khác, bất cứ thứ gì không phải là giá trị nguyên thủy đều là một đối tượng 2. giá trịQuy tắc truyền theo giá trị đơn giản là tất cả các giá trị nguyên thủy trong JavaScript đều được truyền theo giá trị. Đơn giản như thế Truyền theo giá trị có nghĩa là mỗi khi bạn gán một giá trị cho một biến, một bản sao của giá trị đó sẽ được tạo. Mỗi lần Để tôi chỉ cho bạn cách vượt qua giá trị thể hiện chính nó Giả sử bạn có 2 biến 6 và 7
Câu lệnh đầu tiên 0 định nghĩa một biến 6 được khởi tạo với số 2 Câu lệnh thứ hai 3 định nghĩa một biến khác 7 và khởi tạo nó với giá trị của biến 6 — được truyền theo giá trị. Đơn giản hơn, một bản sao của số 2 được gán cho 7 Sau đó, 8 tăng thêm 9 và trở thành 0. Biến 7 thay đổi và thay đổi này không ảnh hưởng đến giá trị của 6 3. Người giới thiệuTuy nhiên, việc vượt qua tham chiếu thể hiện theo cách khác Khi tạo một đối tượng, bạn được cung cấp một tham chiếu đến đối tượng đó. Nếu 2 biến giữ cùng một tham chiếu thì việc thay đổi đối tượng phản ánh ở cả 2 biến Hãy kiểm tra mẫu mã sau 0 Câu lệnh đầu tiên 3 tạo một mảng, định nghĩa một biến 4 và khởi tạo biến với một tham chiếu đến mảng đã tạo Sau đó, 5 định nghĩa một biến 6 và khởi tạo 6 với tham chiếu được lưu trữ trong biến 4. Đây là một vượt qua bằng cách tham khảo 9 thay đổi mảng bằng cách đẩy một mục 9. Vì các biến 4 và 6 tham chiếu cùng một mảng nên thay đổi này được phản ánh trong cả hai biến Ghi chú. để đơn giản, tôi nói rằng các biến chứa các tham chiếu đến các đối tượng. Nhưng nói đúng ra các biến trong JavaScript giữ các giá trị tham chiếu đến các đối tượng 4. So sánh các giá trị và so sánh các tham chiếuHiểu sự khác biệt giữa giá trị và tham chiếu là điều quan trọng khi bạn muốn so sánh các đối tượng Khi sử dụng toán tử so sánh chặt chẽ 03, 2 biến có giá trị bằng nhau nếu chúng có cùng giá trị. Tất cả các so sánh dưới đây đều bình đẳng 2 04 và 05 có cùng giá trị 2. Toán tử 03 đánh giá thành 08 miễn là cả hai toán hạng đều là 2, bất kể giá trị được lấy từ đâu. một chữ 2, giá trị của biến, biểu thức 21 Nhưng toán tử so sánh 03 hoạt động khác khi so sánh các tham chiếu. 2 tham chiếu chỉ bằng nhau nếu chúng tham chiếu chính xác cùng một đối tượng 23 và 24 giữ các tham chiếu đến thể hiện mảng khác nhau 4 Mảng tham chiếu 23 và 24 có cùng cấu trúc, tuy nhiên, 27 đánh giá bằng 28 vì 23 và 24 tham chiếu các đối tượng mảng khác nhau Toán tử so sánh chỉ trả về 08 khi so sánh các tham chiếu trỏ đến cùng một đối tượng. 42 hoặc 43 5. Tóm lượcTrong các kiểu nguyên thủy của JavaScript được truyền xung quanh dưới dạng giá trị. nghĩa là mỗi khi một giá trị được gán, một bản sao của giá trị đó sẽ được tạo Mặt khác, các đối tượng (bao gồm các đối tượng đơn giản, mảng, hàm, thể hiện lớp) là các tham chiếu. Nếu bạn sửa đổi đối tượng, thì tất cả các biến tham chiếu đến đối tượng đó sẽ thấy sự thay đổi Toán tử so sánh phân biệt các giá trị so sánh và tham chiếu. 2 biến giữ tham chiếu chỉ bằng nhau nếu chúng tham chiếu chính xác cùng một đối tượng, nhưng 2 biến giữ giá trị bằng nhau nếu chúng chỉ có 2 giá trị giống nhau bất kể giá trị bắt nguồn từ đâu. từ một biến, theo nghĩa đen, v.v. Tuy nhiên, thông thường, bạn có thể muốn so sánh các đối tượng theo cấu trúc của chúng hơn là theo tham chiếu. Kiểm tra bài viết Cách so sánh các đối tượng trong JavaScript Thích bài viết?Bài đăng chất lượng vào hộp thư đến của bạnTôi thường xuyên xuất bản bài viết có chứa
Đăng ký nhận bản tin của tôi để nhận chúng ngay trong hộp thư đến của bạn Đặt muaTham gia cùng 6719 người đăng ký khác Giới thiệu về Dmitri PavlutinNhà văn và huấn luyện viên công nghệ. Thói quen hàng ngày của tôi bao gồm (nhưng không giới hạn) uống cà phê, viết mã, viết, huấn luyện, vượt qua sự nhàm chán 😉 JavaScript theo tham chiếu hay theo giá trị?Javascript luôn được truyền theo giá trị , nhưng khi một biến tham chiếu đến một đối tượng (bao gồm cả mảng), thì "giá trị" là một tham chiếu đến đối tượng. Tuy nhiên, việc thay đổi một thuộc tính của một đối tượng được tham chiếu bởi một biến sẽ làm thay đổi đối tượng bên dưới.
JavaScript có sử dụng tham chiếu không?Tham chiếu JavaScript đóng vai trò là kho lưu trữ dữ kiện về ngôn ngữ JavaScript . Toàn bộ ngôn ngữ được mô tả chi tiết ở đây. Khi bạn viết mã JavaScript, bạn sẽ thường xuyên tham khảo các trang này (do đó, tiêu đề là "Tham khảo JavaScript").
JavaScript có luôn chuyển qua tham chiếu không?JavaScript luôn là giá trị truyền qua . Điều này có nghĩa là mọi thứ trong JavaScript là một loại giá trị và các đối số của hàm luôn được truyền theo giá trị. Điều đó đang được nói, các loại đối tượng khó hiểu hơn một chút. Sự nhầm lẫn nằm ở chỗ các loại đối tượng là các loại tham chiếu được truyền theo giá trị. |