Tham trị và Tham chiếu trong JavaScript?

Tham trịTham chiếu là hai khái niệm quan trọng trong lập trình JavaScript, đặc biệt khi truyền tham số cho hàm hoặc phương thức. Hiểu rõ sự khác biệt giữa hai khái niệm này sẽ giúp bạn viết code hiệu quả và tránh gặp lỗi.

1. Tham trị:

  • Khi truyền tham trị trong JavaScript, một bản sao của giá trị được truyền vào hàm hoặc phương thức.

  • Bất kỳ thay đổi nào được thực hiện đối với tham số bên trong hàm sẽ không ảnh hưởng đến giá trị gốc bên ngoài hàm.

  • Tham trị thường được sử dụng cho các kiểu dữ liệu nguyên thủy như số, chuỗi, boolean.

Ví dụ:

function square(x) {
  x = x * x;
  return x;
}

const number = 5;
const result = square(number);
console.log(number); // Output: 5
console.log(result); // Output: 25
  • Trong ví dụ trên, giá trị 5 được tham trị cho hàm square.

  • Bên trong hàm, giá trị của biến x được thay đổi thành 25.

  • Tuy nhiên, thay đổi này không ảnh hưởng đến giá trị number bên ngoài hàm.

2. Tham chiếu:

  • Khi truyền tham chiếu trong JavaScript, tham chiếu đến biến được truyền vào hàm hoặc phương thức.

  • Bất kỳ thay đổi nào được thực hiện đối với tham số bên trong hàm sẽ ảnh hưởng trực tiếp đến giá trị gốc bên ngoài hàm.

  • Tham chiếu thường được sử dụng cho các kiểu dữ liệu phức tạp như mảng, đối tượng.

Ví dụ:

  • Trong ví dụ trên, mảng numbers được tham chiếu cho hàm doubleList.

  • Bên trong hàm, các phần tử trong mảng numbers được nhân đôi.

  • Do sử dụng tham chiếu, thay đổi này ảnh hưởng trực tiếp đến mảng numbers bên ngoài hàm.

Bảng so sánh Tham trị và Tham chiếu:

Đặc điểm
Tham trị
Tham chiếu

Truyền

Bản sao của giá trị

Tham chiếu đến biến

Ảnh hưởng

Không ảnh hưởng đến giá trị gốc

Ảnh hưởng trực tiếp đến giá trị gốc

Sử dụng

Kiểu dữ liệu nguyên thủy

Kiểu dữ liệu phức tạp

Lựa chọn Tham trị hay Tham chiếu:

  • Lựa chọn sử dụng tham trị hay tham chiếu phụ thuộc vào mục đích sử dụng và kiểu dữ liệu được truyền.

  • Nên sử dụng tham trị cho các kiểu dữ liệu nguyên thủy khi không cần thay đổi giá trị gốc bên ngoài hàm.

  • Nên sử dụng tham chiếu cho các kiểu dữ liệu phức tạp khi cần thay đổi giá trị gốc bên ngoài hàm.

Lưu ý:

  • Việc sử dụng tham chiếu có thể dẫn đến lỗi nếu không được sử dụng cẩn thận.

  • Nên sử dụng tham chiếu một cách rõ ràng và có chủ ý để tránh gặp lỗi.

Last updated