Cách định nghĩa và cấu trúc các hàm trong JavaScript | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

Cách định nghĩa và cấu trúc các hàm trong JavaScript

Chia sẻ kiến thức 05/05/2022

Cùng FUNiX tìm hiểu Các hàm trong JavaScript được định nghĩa như thế nào? Cấu trúc của các hàm đó trong bài viết dưới đây.

>> Khóa học Kỹ thuật lập trình với JavaScript

>> Sự khác biệt giữa PHP và JavaScript: Ngôn ngữ lập trình nào phù hợp với bạn?

Một hàm tốt có thể được tái sử dụng trong nhiều dự án khác nhau, giúp nâng cao năng suất công việc cho lập trình viên.

Sử dụng hàm trong JavaScrip

Định nghĩa các hàm trong JavaScript

Các hàm trong javascript là tập hợp những xử lý để nhằm thực hiện một chức năng trong chương trình. Hàm cho phép chúng ta có thể kết hợp các xử lý thành một. Sau khi tạo và đặt tên cho hàm, thì mỗi khi cần sử dụng cho chương trình, chúng ta chỉ cần gọi tên hàm ra.

Khi kết hợp các xử lý khác nhau lại thành một hàm, chúng ta không cần viết lại nhiều lần, điều này giúp làm giảm sai sót khi viết code và có thể tái sử dụng hàm trong một chương trình khác.

Một hàm có thể nhận một giá trị và trả về giá trị đã qua xử lý, cho nên nó có khả năng tạo ra công suất tối đa mà chỉ cần lượng mã chương trình tối thiểu.

Cấu trúc của các loại hàm trong JavaScript

Cấu trúc hàm cơ bản

Cấu trúc hàm cơ bản trong JavaScript

Cấu trúc của các hàm ở trong JavaScript bắt đầu bằng từ khoá function với cú pháp cơ bản:

function functionName([parameter1], [parameter2],...) {
  statement1;
  statement2;
  ...
}

Trong đó:

  • function là từ khóa bắt buộc
  • functionName là tên của hàm mà mình muốn đặt.
  • ([parameter1], [parameter2],…) là danh sách các tham số của hàm (không giới hạn số lượng)
  • Thân hàm bao gồm các câu lệnh nằm trong cặp dấu ngoặc {}.

Ví dụ: hàm sayHello():

function sayHello() {
  console.log("Hello from completejavascript.com");
}

Khi gọi hàm chúng ta sẽ sử dụng tên hàm:

function sayHello() {
  console.log("Hello from completejavascript.com");
}
sayHello();sayHello();
// Hello from completejavascript.com
// Hello from completejavascript.com

Trong ví dụ trên có hai lần gọi hàm, và đoạn code console.log bên trong thân hàm được thực hiện hai lần tương ứng số lần gọi hàm.

Hàm sẽ giúp tránh lặp lại code. Giả sử chúng ta cần thay đổi nội dung đoạn code console.log trên, thì chỉ cần thay đổi một chỗ.

Hàm chứa biến cục bộ

Biến cục bộ là biến được khai báo bên trong hàm và chỉ được sử dụng ở bên trong thân hàm đó.

Ví dụ: 

function sayHello() {
  const message = "Hello from completejavascript.com";  console.log(message);
}
sayHello(); // Hello from completejavascript.com

console.log(message); // Uncaught ReferenceError: message is not defined

Trong ví dụ trên thì hàm sayHello có chứa biến cục bộ message và biến này chỉ dùng được ở trong thân hàm sayHello.

Khi truy cập vào biến message ở ngoài hàm sẽ bị báo lỗi Uncaught ReferenceError: message is not defined.

Hàm chứa biến ngoài 

Các hàm trong JavaScript có thể truy cập vào các biến được khai báo ở bên ngoài hàm.

Ví dụ:

let message = "Hello from completejavascript.com";
function sayHello() {
  console.log(message);
}
sayHello(); // Hello from completejavascript.com

Và trong thân hàm có thể thay đổi giá trị của biến ngoài hàm:

let message = "Hello from completejavascript.com";
function sayHello() {
  message = "Hi!";  console.log(message);
}
sayHello(); // Hi!
console.log(message); // Hi!

Tuy nhiên nếu biến ngoài hàm bị trùng tên với một biến trong thân hàm thì sẽ bị bỏ qua.

let message = "Hello from completejavascript.com";
function sayHello() {
  let message = "Hi!";  console.log(message);
}
sayHello(); // Hi!
console.log(message); // Hello from completejavascript.com

Hàm có tham số truyền vào

Nếu chúng ta muốn sử dụng giá trị của biến ngoài vào trong thân hàm, thì có thể dùng cách truyền tham số vào hàm. Số lượng tham số có thể truyền vào hàm là không giới hạn.

Ví dụ: 

function sayHello(message) {
  console.log(message);
}
sayHello("Hello!"); // Hello!
sayHello("Hi!"); // Hi!

Khi gọi hàm sayHello, giá trị được sao chép vào biến cục bộ message trong thân hàm và sẽ sử dụng nó.

Các hàm ở trong JavaScript khi có tham số truyền vào sẽ thực hiện sao chép dữ liệu mà không làm thay đổi giá trị của biến ngoài hàm.

Ví dụ:

let message = "Hello from completejavascript.com";
function sayHello(message) {
  message = "Hi!";  console.log(message);
}
sayHello(); // Hi!
console.log(message); // Hello from completejavascript.com

Biến message được gán giá trị Hi! bên trong hàm. Nhưng giá trị bên ngoài hàm của biến message không hề thay đổi.

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

Khi gọi hàm đối với các hàm có tham số, nếu chúng ta không truyền tham số vào thì tham số đó có giá trị undefined.

Ví dụ: Giá trị tham số mặc định trong trường hợp này được sử dụng toán tử gán = như sau:

Nếu ta không truyền giá trị vào tham số site thì giá trị của nó mặc định là completejavascript.com.

Giá trị tham số mặc định còn có thể là một biểu thức hoặc là một hàm khác.

Hàm có và không có giá trị trả về

Các hàm trong JavaScript có thể có hoặc không có giá trị trả về khi gọi hàm. Hàm có giá trị trả về thì sẽ sử dụng từ khóa return.

Ví dụ về hàm tính tổng hai số:

Từ khóa return trong JavaScript có thể được đặt ở vị trí bất kỳ trong thân hàm, và hàm sẽ trả về giá trị sau từ khóa.

Trong một hàm có thể sử dụng nhiều từ khóa return:

Cách đặt tên các hàm trong JavaScript

Cách đặt tên hàm trong JavaScript

Một số các ràng buộc về đặt tên các hàm trong JavaScript như sau:

  • Tên hàm phải bắt đầu bằng chữ cái (a-z, A-Z), hoặc dấu gạch dưới (_) hoặc kí tự “đô la” ($).
  • Sau ký tự bắt đầu thì có thể sử dụng thêm số (0-9) ngoài những ký tự trên.
  • Không được sử dụng các từ khoá và từ dự trữ.

Bài viết này của Funix.edu.vn vừa giới thiệu về các hàm trong JavaScript và cấu trúc của từng loại hàm, các quy tắc đặt tên hàm. Hy vọng bài viết sẽ mang đến nhiều kiến thức và có ích cho các bạn.

Phạm Thị Thanh Ngọc

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
Chat với FUNiX GPT ×

yêu cầu gọi lại

error: Content is protected !!