Loại JavaScript nào được chuyển qua tham chiếu?
JavaScript được coi là ngôn ngữ truyền theo giá trị, nhưng tại thời điểm một biến tham chiếu đến một đối tượng, giá trị sẽ trở thành tham chiếu của đối tượng đó Show Bây giờ, hãy xem những gì được truyền theo giá trị và truyền theo tham chiếu Khi truyền theo giá trị, một hàm có thể được gọi bằng cách truyền trực tiếp giá trị của biến làm đối số. Nếu bạn thay đổi đối số bên trong hàm thì sẽ không ảnh hưởng đến biến được truyền từ bên ngoài vào hàm Vì JavaScript luôn truyền theo giá trị, nên việc thay đổi giá trị của biến sẽ không thay đổi nguyên hàm cơ bản (số hoặc chuỗi) Hãy chứng minh điều đó trong ví dụ dưới đây Javascript thay đổi giá trị biếnhàm callByValue(var1, var2) { bảng điều khiển. log("Cuộc gọi nội bộ"); . nhật ký ("var1 = " + var1 + " var2 = " + var2); . log("Trước khi gọi"); . nhật ký ("var1 = " + var1 + " var2 = " + var2); . log("Sau Cuộc Gọi"); . nhật ký ("var1 = " + var1 + " var2 = " + var2); Đầu ra sẽ như sau Before Call by Value Method var1 =100 var2 =200 Inside Call by Value Method var1 =10 var2 =20 After Call by Value Method var1 =100 var2 =200 Nhưng trong trường hợp một biến tham chiếu đến một đối tượng bao gồm một mảng, thì giá trị là tham chiếu đến đối tượng Truyền theo giá trị là cách lập trình an toàn hơn, ngăn người lập trình ghi đè các biến bên trong hàm. JavaScript và các ngôn ngữ lập trình hiện đại khác sử dụng nó khi nói đến nguyên thủy Khi truyền tham chiếu, một hàm có thể được gọi bằng cách truyền trực tiếp tham chiếu/địa chỉ của biến làm đối số. Nếu thay đổi đối số bên trong hàm sẽ ảnh hưởng đến biến được truyền từ bên ngoài hàm vào Trong JavaScript, các đối tượng và mảng được truyền theo tham chiếu Đây là một ví dụ Các đối tượng và mảng Javascript được truyền theo tham chiếuhàm callByReference(obj) { bảng điều khiển. log("Gọi bên trong theo tham chiếu"); . a = 100; . nhật ký (đối tượng); . 1}; . log("Trước khi gọi theo tham chiếu"); . nhật ký (đối tượng); . log("Sau khi gọi theo tham chiếu"); . nhật ký (đối tượng); Đầu ra sẽ là Before Call by Reference Method {a: 1} Inside Call by Reference Method {a: 100} After Call by Reference Method {a: 100} Các yếu tố đơn giản nhất của ngôn ngữ lập trình được gọi là nguyên thủy. Chúng khác nhau từ ngôn ngữ này sang ngôn ngữ khác nhưng nói chung là giá trị bất biến cơ bản nhất Các kiểu dữ liệu nguyên thủy JavaScript sau đây được truyền theo giá trị. chuỗi, boolean, số, null, không xác định Các nguyên hàm được sao chép theo giá trị của chúng có nghĩa là biến được truyền truy cập theo giá trị của nó Nguyên thủy là bất biến, có nghĩa là giá trị của chúng không thể thay đổi nhưng có thể được gán lại Các đối tượng trong JavaScript thuộc loại tham chiếu Không giống như giá trị nguyên thủy, kích thước của giá trị tham chiếu là động; Đối tượng là một tập hợp các thuộc tính có thể tham chiếu bất kỳ kiểu dữ liệu nào, bao gồm các đối tượng và giá trị nguyên thủy. Bạn có thể tạo các đối tượng có dấu ngoặc nhọn {…} với danh sách các thuộc tính Nói chung, các đối tượng đi qua hầu hết mọi khía cạnh của JavaScript. Do đó nó là một trong những điều đầu tiên để học 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ị. Nghe có vẻ kỳ lạ, một tham chiếu đến một đối tượng được truyền cho một hàm theo giá trị. Sự khác biệt tinh tế ở đây nằm ở chỗ một tham chiếu đối tượng được truyền theo giá trị không giống như truyền một đối tượng theo tham chiếu Nói một cách đơn giản, các thay đổi đối với đối tượng bên trong hàm sẽ ảnh hưởng đến đối tượng ban đầu, vì cả hai đều tham chiếu đến cùng một đối tượng. Tuy nhiên, việc gán lại giá trị của biến giữ đối tượng ban đầu sẽ không ảnh hưởng đến đối tượng được tham chiếu bởi hàm. Hãy để tôi chứng minh điều này với một ví dụ Trong ví dụ này, Việc gán lại Có phải JavaScript 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ị.
Các mảng JavaScript có được chuyển qua tham chiếu không?Trong Javascript các đối tượng và mảng được truyền theo tham chiếu .
JavaScript có vượt qua khôngJavaScript hoàn toàn chuyển từng giá trị .
Các loại tham chiếu JavaScript là gì?Giá trị tham chiếu. JavaScript cung cấp ba loại giá trị Tham chiếu bao gồm Mảng, Đối tượng và Hàm . |