Bài viết này thảo luận về cách các loại dữ liệu JavaScript khác nhau hoạt động khi chúng được gán cho một biến. Tùy thuộc vào loại dữ liệu, bộ nhớ được phân bổ khác nhau để lưu trữ nó. Nó có thể dành một không gian mới để lưu trữ một bản sao của giá trị hoặc nó có thể không tạo một bản sao nào cả và chỉ trỏ đến giá trị hiện có (tham khảo) Show Dưới đây là những ghi chú của tôi khi theo dõi khóa học Javascript30 của Wes Bos Số, Chuỗi và BooleansTrong JavaScript, Các loại nguyên thủy như 8, 9, 0, 1, 2 và 3 được truyền theo giá trị
Thông qua giá trịKhi biến 4 được gán, một khoảng trống trong bộ nhớ có địa chỉ là 5 được dành để lưu trữ giá trị đó. Biến 4 sau đó trỏ đến địa chỉ đó. Biến 7 sau đó được đặt bằng 4. Một không gian mới trong bộ nhớ, với một địa chỉ mới 9 được phân bổ và lưu trữ một bản sao của giá trị được lưu trữ trong địa chỉ mà 4 trỏ tớiVì vậy, bất cứ khi nào chúng tôi muốn sửa đổi giá trị của 4, giá trị được lưu trữ bởi 7 sẽ không bị thay đổi, vì đó là bản sao, được lưu trữ ở một vị trí khácĐối tượng và MảngCác đối tượng trong JavaScript được truyền theo tham chiếu. Khi có nhiều hơn một biến được đặt để lưu trữ 3, 4 hoặc 5, các biến đó sẽ trỏ đến cùng một không gian được phân bổ trong bộ nhớ
Thông qua tham chiếu. Khi 6 được đặt để lưu trữ một mảng, bộ nhớ được cấp phát và một địa chỉ được liên kết với biến đó. Sau đó, 7 được đặt bằng 6. Vì 6 lưu trữ một mảng, thay vì tạo một bản sao của mảng đó và một địa chỉ mới trong bộ nhớ, 7 chỉ đơn giản được trỏ đến cùng một đối tượng trong địa chỉ hiện có. Bằng cách đó, bất kỳ thay đổi nào được thực hiện đối với 7 sẽ phản ánh trên 6, vì chúng trỏ đến cùng một vị tríBạn sẽ thấy hành vi tương tự đối với các đối tượng
Sao chép đối tượng và mảngVì một nhiệm vụ đơn giản là không đủ để tạo ra một bản sao của một đối tượng, điều đó có thể đạt được bằng các phương pháp khác Mảnglát cắt() 0concat() 1lây lan (ES6) 2Các thay đổi sẽ chỉ ảnh hưởng đến đối tượng được sửa đổi 3Các đối tượnggiao phó() 4_______0_______5bản sao sâu Điều quan trọng cần lưu ý là những phương pháp đó chỉ sâu một cấp độ. Đối với các bản sao sâu, có một phương pháp được tán thành. Sử dụng cẩn thận 6_______0_______7Người giới thiệu
Được xuất bản lần đầu tại marina-ferreira. github. io QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO Nếu bài viết này hữu ích, hãy tweet 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 JavaScript có 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").
Thẻ tham chiếu trong JavaScript là gì?Nhận xét “tham chiếu” cho phép bạn “xem” các chức năng và đối tượng bên ngoài tệp hiện tại của bạn trong danh sách hoàn thành . |