Biến tham chiếu JavaScript
TL;DR. KHÔNG có con trỏ trong JavaScript và các tham chiếu hoạt động khác với những gì chúng ta thường thấy trong hầu hết các ngôn ngữ lập trình phổ biến khác. Trong JavaScript, KHÔNG thể có tham chiếu từ biến này sang biến khác. Và, chỉ các giá trị phức hợp (e. g. Đối tượng hoặc Mảng) có thể được chỉ định theo tham chiếu Show
Các thuật ngữ sau đây được sử dụng trong suốt bài viết
Các kiểu tham chiếu vô hướng của JavaScript là kiểu nguyên thủy, nhưng một số ngôn ngữ, chẳng hạn như Ruby, có các kiểu tham chiếu vô hướng. Lưu ý rằng trong JavaScript, các giá trị nguyên thủy vô hướng là bất biến trong khi các giá trị phức hợp có thể thay đổi Bài viết này ban đầu được xuất bản trên Medium Dòng dưới cùng về tài liệu tham khảo JavaScript
Ví dụ nhanh về gán theo giá trịTrong đoạn mã bên dưới, chúng tôi đang gán một giá trị nguyên thủy vô hướng (một số) cho một biến và do đó, việc gán theo giá trị được áp dụng ở đây. Đầu tiên, biến 5 được khởi tạo và khi biến 6 được gán với giá trị được lưu trữ trong 5, nó sẽ tạo một bản sao mới của giá trị và lưu trữ nó. Khi biến 6 được sửa đổi, thì 5 không bị ảnh hưởng vì chúng trỏ đến các giá trị riêng biệt
Ví dụ nhanh về gán theo tham chiếuTrong đoạn mã bên dưới, chúng tôi đang gán một giá trị phức hợp (một mảng) cho một biến và do đó, gán theo tham chiếu được áp dụng ở đây. Các biến 3 và 4 là các tham chiếu đến cùng một giá trị (còn gọi là giá trị được chia sẻ). Các tham chiếu sẽ trỏ đến giá trị được cập nhật khi giá trị được chia sẻ được sửa đổi
Cách tạo một tham chiếu mớiKhi giá trị tổng hợp trong một biến được gán lại, một tham chiếu mới được tạo. Trong JavaScript, không giống như hầu hết các ngôn ngữ lập trình phổ biến khác, các tham chiếu là các con trỏ tới các giá trị được lưu trữ trong các biến và KHÔNG phải là các con trỏ tới các biến hoặc tham chiếu khác
Cách tham chiếu hoạt động khi các giá trị được truyền dưới dạng tham số chức năngTrong đoạn mã bên dưới, biến 5 là một giá trị phức hợp (một Mảng), do đó nó được gán cho biến (đối số hàm) 6 làm tham chiếuPhương thức 7 được gọi bên trong IIFE thay đổi giá trị trong biến 5 thông qua tham chiếu JavaScript. Tuy nhiên, việc gán lại biến 6 tạo ra một tham chiếu mới và các sửa đổi tiếp theo đối với nó KHÔNG ảnh hưởng đến tham chiếu đến biến 5 1Cách thay đổi giá trị gốc trong biến tổng hợp, được truyền dưới dạng đối số hàm thông qua tham chiếu JavaScriptGiải pháp ở đây là sửa đổi giá trị ghép hiện có mà tham chiếu đang trỏ tới. Trong đoạn mã bên dưới, biến 1 là một giá trị phức hợp (một Mảng) và khi gọi IIFE, biến (đối số hàm) 6 được gán theo tham chiếuThuộc tính 3 có thể được sử dụng để tạo một mảng trống bằng cách đặt giá trị của nó thành 4. Do đó, biến wolverine được thay đổi thành giá trị mới được đặt trong biến 6 thông qua tham chiếu JavaScript 7Cách lưu trữ giá trị tổng hợp thông qua gán theo giá trịGiải pháp ở đây là tạo một bản sao thủ công của giá trị ghép và sau đó gán giá trị đã sao chép cho một biến. Do đó, tham chiếu của giá trị được gán KHÔNG trỏ lại giá trị ban đầu Cách tiếp cận được đề xuất để tạo một bản sao (nông) của giá trị phức hợp (đối tượng Array) là gọi phương thức 6 trên đó mà không có đối số nào được truyền 9Làm cách nào để lưu trữ giá trị nguyên thủy vô hướng thông qua gán theo tham chiếu?Giải pháp ở đây là bọc giá trị nguyên thủy vô hướng trong một giá trị phức hợp (i. e. một Đối tượng hoặc Mảng) làm giá trị thuộc tính của nó. Do đó, nó có thể được chỉ định theo tham chiếu. Trong đoạn mã bên dưới, giá trị nguyên thủy vô hướng trong biến 7 được đặt làm thuộc tính trên đối tượng 3. Do đó, nó được gán theo tham chiếu khi gọi IIFE tới biến (đối số hàm) 6 3Tóm lượcHiểu rõ về các tham chiếu trong JavaScript có thể giúp các nhà phát triển tránh được nhiều lỗi phổ biến và viết mã tốt hơn Làm cách nào để kiểm tra tham chiếu của biến trong JavaScript?Đối với loại tham chiếu như đối tượng, toán tử == hoặc === chỉ kiểm tra tham chiếu của nó. ở đây a==b sẽ sai vì tham chiếu của cả hai biến là khác nhau mặc dù nội dung của chúng giống nhau. và nếu bây giờ tôi kiểm tra a==b thì nó sẽ đúng, vì tham chiếu của cả hai biến bây giờ đều giống nhau
Nó là gì cho '$' trong JavaScript?$ đại diện cho Hàm jQuery và thực sự là bí danh viết tắt của jQuery . (Không giống như hầu hết các ngôn ngữ, biểu tượng $ không được đặt trước và có thể được sử dụng làm tên biến. ) Nó thường được sử dụng như một bộ chọn (i. e. một hàm trả về một tập hợp các phần tử được tìm thấy trong DOM).
Bạn có thể tham khảo một biến?Khi một biến được khai báo là tham chiếu, nó sẽ trở thành tên thay thế cho một biến hiện có. Một biến có thể được khai báo như một tham chiếu bằng cách thêm '&' vào phần khai báo .
Làm cách nào để chuyển giá trị theo tham chiếu trong JavaScript?Chuyển theo tham chiếu. Trong Truyền theo tham chiếu, Hàm được gọi bằng cách truyền trực tiếp tham chiếu/địa chỉ của biến dưới dạng đối số . Vì vậy, thay đổi giá trị bên trong chức năng cũng thay đổi giá trị ban đầu. Trong mảng JavaScript và Đối tượng theo sau chuyển qua thuộc tính tham chiếu. |