07/09/2018, 11:10

Tham Số và Đối Số Khác Nhau Như Thế Nào

Đây là một câu hỏi cơ bản nhưng không phải lập trình viên nào cũng trả lời được. Không ít bạn nghĩ rằng hai thuật ngữ này chỉ là hai cách gọi khác nhau còn về mặt ý nghĩa thì giống nhau. Thực tế thì hai khái niệm này là khác nhau và bạn cũng chỉ mất không quá 5 phút để phân biệt được sự khác nhau ...

Đây là một câu hỏi cơ bản nhưng không phải lập trình viên nào cũng trả lời được. Không ít bạn nghĩ rằng hai thuật ngữ này chỉ là hai cách gọi khác nhau còn về mặt ý nghĩa thì giống nhau. Thực tế thì hai khái niệm này là khác nhau và bạn cũng chỉ mất không quá 5 phút để phân biệt được sự khác nhau giữa chúng!

Phân Biệt Tham Số và Đối Số

Tham Số (Parameter) Được Định Nghĩa Trong Hàm

Ví dụ chúng ta có một hàm JavaScript có tên là hello và được định nghĩa như sau:

function hello(name) {
    alert("Xin chào, " + name);
}

Lúc này chúng ta nói hàm hello trên có một tham số là name.

Ghi nhớ: Tham số của hàm (function parameter) là biến được định nghĩa trong hàm.

Đối Số (Argument) Là Giá Trị Truyền Vào Khi Gọi Hàm

Vẫn ví dụ trên bây giờ chúng ta gọi hàm hello:

hello("CodeHub.vn");

Lúc này chúng ta nói giá trị của đối số truyền vào là chuỗi CodeHub.vn.

Ghi nhớ: Đối số của hàm (function argument) là giá trị thực tế truyền vào cho tham số khi gọi hàm.

Tham Số Mặc Đinh (Default Parameter)

Một số ngôn ngữ hỗ trợ lập trình viên gán giá trị mặc định cho tham số của hàm. Lúc này khi gọi hàm mà chúng ta lại không truyền vào giá trị cho tham số thì giá trị mặc định sẽ được sử dụng. Tính năng này được gọi là tham số mặc định của hàm.

Ở ví dụ dưới đây chúng ta sử dụng ngôn ngữ PHP và định nghĩa một hàm có tên là hello với một tham số có giá trị mặc định:

function hello($name = "Khách") {
    echo "Xin chào, " . $name;
}

Tham số $name được định nghĩa với giá trị mặc định như trên được gọi là tham số mặc định. Lúc này nếu như khi gọi hàm hello() mà bạn không truyền vào giá trị nào cho tham số $name ở trên thì giá trị mặc định (là chuỗi Khách) sẽ được sử dụng:

hello(); // Hiển thị: "Xin chào, Khách"

Lưu ý: Không phải ngôn ngữ lập trình nào cũng hỗ trợ chức năng tham số mặc định.

Thuật ngữ tham số mặc định còn được gọi là giá trị đối số mặc định (default argument value).

0