Gọi function trong JavaScript

Một hàm JavaScript được khai báo với từ khóa function, theo sau là name, theo sau là 0 hoặc nhiều tham số được khai báo bên trong ().

Tên hàm có thể chứa các ký tự chữ cái, chữ số, dấu gạch dưới, và ký tự dô la (giống như quy tắc đặt tên biến).

Giả sử bạn cần tạo một chương trình để tạo một hình tròn và tính chu vi của nó. Bạn có thể tạo hai hàm để giải quyết vấn đề này:

  1. Một function để vẽ hình tròn
  2. Một function để tính chu vi hình tròn

Khi sử dụng function, nó giúp chúng ta chia một vấn đề phức tạp thành các phần nhỏ hơn giúp chương trình dễ hiểu và đặc biệt là có thể sử dụng lại (reusable).

JavaScript hay các ngôn ngữ lập trình khác cũng có một lượng lớn các hàm có sẵn (Built-in Functions). Ví dụ: Math.random() trong JavaScript là một hàm để trả về số ngẫu nhiên, hay Math.max() trong JavaScript dùng để tìm số lớn nhất trong các số đã cho.

Trong bài viết này này, chúng ta cùng tìm hiểu về các hàm do chúng ta định nghĩa.

Khai báo hàm

Cú pháp để khai báo một hàm như sau:

  1. Một hàm được khai báo bằng cách sử dụng từ khóa function.
  2. Quy tắc cơ bản của việc đặt tên cho một function tương tự như đặt tên cho một biến. Để code dễ đọc thì chúng ta nên đặt một tên ngắn gọn mô tả cho chức năng của hàm. Ví dụ: nếu một hàm được sử dụng để thêm hai số, bạn có thể đặt tên cho hàm là addNumbers. Hoặc hàm sử dụng để kiểm tra số nguyên dương - isPositiveInteger
  3. Phần thân của hàm được viết trong
    Nhập một tên: Hà
    Xin chào mình là Hà
    0.

Ví dụ:

Gọi hàm

Ở ví dụ trên, chúng ta đã khai báo một hàm có tên là

Nhập một tên: Hà
Xin chào mình là Hà
1. Để sử dụng hàm đó, chúng ta cần gọi hay làm cho nó chạy.

Chúng ta sẽ gọi hàm

Nhập một tên: Hà
Xin chào mình là Hà
2 ở trên bằng cách sử dụng
Nhập một tên: Hà
Xin chào mình là Hà
3 với tên hàm để gọi hàm:

Ví dụ:

Sau khi gọi hàm

Nhập một tên: Hà
Xin chào mình là Hà
4 chúng ta sẽ được kết quả như sau:

Xin chào mình là Trang 😋

Function Parameters

Một hàm cũng có thể được khai báo với các tham số (parameters). Tham số là giá trị được truyền khi khai báo một hàm. Ví dụ như bạn đến ngân hàng vào đưa các thông tin cá nhân của mình (parameters) để yêu cầu ngân hàng tạo cho bạn một thẻ ngân hàng.

Cú pháp:

Trong đó:

Nhập một tên: Hà
Xin chào mình là Hà
5 là các tham số mà các bạn muốn truyền vào hàm.

Ví dụ:

Ở ví dụ trên mình có tạo một hàm

Nhập một tên: Hà
Xin chào mình là Hà
4 để hiển thị tên. Tuy nhiên chúng ta chỉ có thể hiển thị một tên duy nhất mỗi khi bạn gọi hàm. Chúng ta có thể viết lại hàm một chút để viết một hàm mà hiển thị được tên theo ý muốn nhé ^^.

Ta nhập thử tên theo ý mình nhé:

Nhập một tên: Hà
Xin chào mình là Hà

Thử nhập tên khác xem có tái sử dụng hàm được không 😃:

Nhập một tên: Tú
Xin chào mình là Tú

Trong chương trình trên, hàm

Nhập một tên: Hà
Xin chào mình là Hà
4 được khai báo với một tham số name. Người dùng được nhắc nhập tên và giá trị sau khi nhập lưu vào biến
Nhập một tên: Hà
Xin chào mình là Hà
8. Sau đó, khi ta gọi hàm, một đối số được truyền vào hàm là
Nhập một tên: Hà
Xin chào mình là Hà
8.

Khi một giá trị được truyền khi khai báo một hàm, nó được gọi là tham số - parameter. Và khi gọi hàm, giá trị được truyền vào được gọi là đối số - argument. Tên tham số và đối số không cần phải đặt giống nhau.

Ví dụ:

Giờ ta sẽ thử tính tổng hai số với tham số là 2 số tùy chọn nhé.

Kết quả chúng ta được:

Tổng hai số là: 3
Tổng hai số là: -1

Trong chương trình trên, hàm

Nhập một tên: Tú
Xin chào mình là Tú
0 dùng để tính tổng của hai số.

  1. Hàm được khai báo với hai tham số a và b.
  2. Hàm được gọi bằng cách sử dụng tên của nó và truyền hai đối số 1 và 2 ở
    Nhập một tên: Tú
    Xin chào mình là Tú
    1, 4 và -5 ở
    Nhập một tên: Tú
    Xin chào mình là Tú
    2.

Chúng ta có thể gọi một hàm bao nhiêu lần tùy thích, chúng ta còn có thể viết một hàm và sau đó gọi nó nhiều lần với các đối số khác nhau. Đây chính là cái hay khi chúng ta sử dụng hàm 😁😁😁.

Hàm có tham số mặc định

Chúng ta có thể đặt mặc định một giá trị cho tham số nếu muốn ^^.

Kết quả:

Tổng hai số là: 6
Tổng hai số là: -1

Khi gọi hàm với tham số mặc định, như ví dụ trên thì

Nhập một tên: Tú
Xin chào mình là Tú
1 không cần truyền đối số thứ hai (mình để mặc định là 5) thì JavaScript tự biết
Nhập một tên: Tú
Xin chào mình là Tú
4 là
Nhập một tên: Tú
Xin chào mình là Tú
5. Ở
Nhập một tên: Tú
Xin chào mình là Tú
2 chúng ta truyền -5 vào đối số thứ hai và JavaScript sẽ sử dụng -5 thay vì giá trị mặc định để tính toán ^^.

Function Return

Câu lệnh

Nhập một tên: Tú
Xin chào mình là Tú
7 có thể được sử dụng để trả về giá trị cho một lời gọi hàm. Mình lấy lại ví dụ về thẻ ngân hàng, bạn đến và đưa thông tin cá nhân (parameter) để làm thẻ tại ngân hàng, ngân hàng chấp nhận thông tin của bạn và sau đó thẻ ngân hàng được làm và đưa cho bạn (return).

Câu lệnh

Nhập một tên: Tú
Xin chào mình là Tú
7 có nghĩa là hàm đã kết thúc. Bất kỳ đoạn code nào sau
Nhập một tên: Tú
Xin chào mình là Tú
7 đều không được thực thi.

Nếu không có gì được

Nhập một tên: Tú
Xin chào mình là Tú
7, hàm sẽ trả về một giá trị
Tổng hai số là: 3
Tổng hai số là: -1
1.

Ví dụ:

Chúng ta xem kết quả ở ví dụ trên:

Trong chương trình trên, kết quả phép tính tổng được trả về bởi hàm sử dụng câu lệnh

Nhập một tên: Tú
Xin chào mình là Tú
7. Và giá trị đó được lưu trữ trong biến
Tổng hai số là: 3
Tổng hai số là: -1
3.

Giả sử chúng ta không sử dụng lệnh return thì kết quả như sau:

Kết quả chúng ta được: Tổng hai số là undefined 😣. Lý do là chúng ta không return về kết quả tính tổng. Do đó function sẽ mặc định

Tổng hai số là: 3
Tổng hai số là: -1
4.


Qua các ví dụ trên chúng ta có thể thấy được lợi ích khi sử dụng hàm như sau ^^.

  1. Tổng hai số là: 3
    Tổng hai số là: -1
    5 làm cho các đoạn code có thể được sử dụng lại. Chúng ta có thể khai báo một lần và sử dụng nhiều lần.
  2. Tổng hai số là: 3
    Tổng hai số là: -1
    5 giúp chúng ta tạo chương trình dễ dàng hơn vì mỗi nhiệm vụ nhỏ được chia thành một chức năng.
  3. Tổng hai số là: 3
    Tổng hai số là: -1
    5 giúp tăng khả năng đọc.

Function Expressions

Trong Javascript, các hàm cũng có thể được định nghĩa dưới dạng các biểu thức (expressions).

Ví dụ:

Trong chương trình trên, biến

Tổng hai số là: 3
Tổng hai số là: -1
8 được sử dụng để lưu khai báo hàm. Ở đây hàm được coi như một biểu thức. Và hàm được gọi bằng cách sử dụng tên biến.

Hàm trên chúng ta không đặt tên cho nó, hàm này được gọi là hàm ẩn danh (anonymous function). Trong ES2015, các biểu thức trên còn được viết dưới dạng các arrow functions hay "hàm mũi tên". chúng ta sẽ tìm hiểu về chúng trong các bài viết sau 😄😄😄.