Tham số và Giá trị Trả về của Hàm trong JavaScript

Tạo bởi Hoàng Vũ, chỉnh sửa cuối lúc 7 tháng 3, 2025

Trong JavaScript, hàm có thể nhận tham số đầu vào và trả về giá trị sau khi thực thi. Điều này giúp tăng tính linh hoạt của chương trình, giúp tái sử dụng code một cách hiệu quả hơn.

Trong bài này, bạn sẽ học về:

  • Tham số và đối số trong hàm (Parameters & Arguments).
  • Giá trị mặc định của tham số khi không truyền đối số.
  • Hàm có giá trị trả về (return) và cách sử dụng nó.
  • Sự khác biệt giữa hàm có return và không có return.
  • Ví dụ thực tế minh họa.

Tham số và Giá trị Trả về của Hàm trong JavaScript

1. Truyền tham số vào hàm (Parameters & Arguments)

  • Tham số (Parameters): Là biến được định nghĩa trong dấu ngoặc () khi khai báo hàm.
  • Đối số (Arguments): Là giá trị thực tế được truyền vào khi gọi hàm.

Ví dụ minh họa:

// Định nghĩa hàm với 2 tham số
function greet(name, age) {
    console.log(`Xin chào ${name}, bạn ${age} tuổi!`);
}

// Gọi hàm với đối số cụ thể
greet("Nam", 25); // Output: Xin chào Nam, bạn 25 tuổi!
greet("Linh", 20); // Output: Xin chào Linh, bạn 20 tuổi!

Nếu không truyền đủ đối số, giá trị mặc định sẽ là undefined.

Ví dụ thiếu đối số:

greet("Hà"); // Output: Xin chào Hà, bạn undefined tuổi!

2. Giá trị mặc định của tham số

Nếu không truyền đối số, có thể đặt giá trị mặc định cho tham số.

Ví dụ:

function greet(name = "bạn", age = 18) {
    console.log(`Xin chào ${name}, bạn ${age} tuổi!`);
}

greet(); // Output: Xin chào bạn, bạn 18 tuổi!
greet("Hoa"); // Output: Xin chào Hoa, bạn 18 tuổi!
greet("Minh", 22); // Output: Xin chào Minh, bạn 22 tuổi!

Lợi ích: Tránh lỗi undefined khi không truyền đủ đối số.

3. Hàm có giá trị trả về (return)

  • Một hàm có thể trả về giá trị bằng từ khóa return.
  • Khi gặp return, hàm sẽ kết thúc ngay lập tức và trả về kết quả.

Ví dụ:

function sum(a, b) {
    return a + b;
}

let result = sum(5, 10);
console.log(result); // Output: 15

Lợi ích: Có thể lưu trữ kết quả vào biến và sử dụng lại.

Ví dụ dùng return trong điều kiện:

function isEven(number) {
    return number % 2 === 0;
}

console.log(isEven(4)); // Output: true
console.log(isEven(7)); // Output: false

4. Sự khác biệt giữa hàm có return và không có return

Loại hàm Cách hoạt động Ví dụ
Không có return Chỉ thực hiện hành động, không trả về kết quả. console.log("Hello!")
return Trả về một giá trị để sử dụng lại. return a + b;

Ví dụ so sánh

Hàm không có return (chỉ hiển thị kết quả):

function showMessage() {
    console.log("Xin chào!");
}

let result = showMessage();
console.log(result); // Output: undefined

Hàm có return (có thể sử dụng lại giá trị):

function getMessage() {
    return "Xin chào!";
}

let result = getMessage();
console.log(result); // Output: Xin chào!

Ví dụ thực tế

Hàm tính diện tích hình chữ nhật

function getRectangleArea(width, height) {
    return width * height;
}

console.log(getRectangleArea(5, 10)); // Output: 50
console.log(getRectangleArea(3, 7)); // Output: 21

Hàm kiểm tra số nguyên tố

function isPrime(num) {
    if (num < 2) return false;
    for (let i = 2; i < num; i++) {
        if (num % i === 0) return false;
    }
    return true;
}

console.log(isPrime(7)); // Output: true
console.log(isPrime(10)); // Output: false

Hàm tính tổng các số trong mảng

function sumArray(arr) {
    let sum = 0;
    for (let num of arr) {
        sum += num;
    }
    return sum;
}

console.log(sumArray([1, 2, 3, 4, 5])); // Output: 15

Hàm tạo lời chào dựa trên thời gian

function greetUser(name) {
    let hour = new Date().getHours();
    let greeting = hour < 12 ? "Chào buổi sáng" : "Chào buổi chiều";
    return `${greeting}, ${name}!`;
}

console.log(greetUser("Hải")); // Output: Chào buổi sáng, Hải! (hoặc Chào buổi chiều, Hải!)

Kết luận

  • Tham số giúp truyền dữ liệu vào hàm để xử lý linh hoạt hơn.
  • Có thể đặt giá trị mặc định để tránh lỗi khi thiếu tham số.
  • Hàm có return sẽ trả về giá trị để sử dụng lại, trong khi hàm không có return chỉ thực thi hành động.
  • Biết khi nào nên sử dụng return giúp tối ưu hóa code và tăng hiệu quả làm việc.
Website Logo

Với hơn 10 năm kinh nghiệm lập trình web và từng làm việc với nhiều framework, ngôn ngữ như PHP, JavaScript, React, jQuery, CSS, HTML, CakePHP, Laravel..., tôi hy vọng những kiến thức được chia sẻ tại đây sẽ hữu ích và thiết thực cho các bạn.

Bình luận

Website Logo

Chào, tôi là Vũ. Đây là blog hướng dẫn lập trình của tôi.

Liên hệ công việc qua email dưới đây.

lhvuctu@gmail.com

Chúng Tôi Trên

Bạn đang muốn học về lập trình website?

Bạn cần nâng cao kiến thức chuyên nghiệp hơn để nâng cao cơ hội nghề nghiệp? Liên hệ