- Khái niệm ?
- Hàm được hiểu đơn giản là khối các câu lệnh được sắp xếp để thực hiện một tác vụ cụ thể nào đó.
- Một chương trình hoạt động được thì bạn cần phải định nghĩa chương trình làm gì, làm như thế nào, khi nào thì làm việc gì đó… những hành động đó sẽ được định nghĩa và thực hiện bởi hàm.
- Phân loại hàm
Từ khóa cần lưu ý : tham số : hiểu đơn giản là những biến được định nghĩa trong hàm
- Hàm không có tham số : không nhận giá trị truyền vào trong dấu ngoặc
function sayHello () { console.log("Hello !"); } sayHello();
Trong ví dụ trên , Hàm sayHello không nhận bất kì 1 giá trị nào , chỉ trả về dòng thông báo Hello !
- Hàm có tham số : hàm cần phải truyền giá trị vào cho nó, tùy thuộc vào giá trị truyền vào mà kết quả thực thi sẽ khác nhau.
function square(number) { return number * 5; } console.log(square(2)); # 10
Trong ví dụ trên , Hàm sqare nhận 1 tham số là number, thực thi và trả về kết quả của hàm là tích của tham số truyền vào với số 5
Từ khóa cần lưu ý : return : khi sử dụng lệnh return trong hàm thì khi thực thi chương trình của hàm sẽ dừng lại ngay lệnh return đó, và giá trị khi gán biến cho hàm chính là giá trị của lệnh return.
- Các kiểu khai hàm thường gặp
- Function Declaration: hàm này có lẽ là quá quen thuộc với mọi người rồi @@
function sum(a, b)
{
// trả về kết quả là a + b
return a + b;
}
sum(2,6) //8
Điều quan trọng là bạn cần phân biệt được sự khác nhau giữa tham số và đối số truyền vào.
-Tham số là một biến khi định nghĩa function.
-Đối số là dữ liệu thực tế bạn truyền vào các tham số.
- Function Expression:
Cách định nghĩa hàm kiểu này cũng khá giống với cách định nghĩa hàm trên, chỉ khác một chút là hàm không bắt buộc phải có từ khóa “function”, tên của hàm cũng là tùy chọn (có cũng được, không có cũng được).
let checkNumber = function check (num){
return (num %2==0)?"số chẵn" : "số lẻ"
}
console.log(checkNumber(10)) // số chẵn
Có một điểm khác biệt rất quan trọng giữa Function Expression và Function Declaration đó là: Function Expression không có tính Hoisting
- Arrow function
- Trong ES6, arrow functions là một cú pháp mới dùng để viết các hàm trong JavaScript. (Arrow function) được xác định bằng cặp dấu ngoặc đơn chứa danh sách các tham số (param1, param2, ..., paramN), theo sau là mũi tên => và cặp dấu ngoặc nhọn {...} phân định thân hàm với các câu lệnh. Ví dụ sau đây cho thấy chức năng sử dụng cơ bản của Arrow function:
// (param1, param2, paramN) => expression // ES5 var multiply = function(x, y) { return x * y; }; // ES6 var multiply = (x, y) => { return x * y };
-Khi arrow functions chỉ có một tham số, cặp dấu ngoặc đơn có thể được bỏ qua. Khi nó chứa một câu lệnh đơn, các dấu ngoặc nhọn cũng có thể được bỏ qua.
// cú pháp ngắn gọn hơn
var multiply = (x, y) => ( x*y );
- Kết luận :
Như vậy qua bài viết này , mình đã chia sẻ cho các bạn những khái niệm cơ bản nhất về hàm . Hàm thì được sử dụng rộng rãi trong tất cả các ngôn ngữ và việc bạn càng nắm chắc mọi kiến thức về hàm sẽ giúp ích rất nhiều trong việc xử lí các task công việc 1 cách gọn gàng và nhanh chóng nhất là với 1 ngôn ngữ dùng hàm thường xuyên như "cơm bữa" như Javascript . Các bạn có thể xem thêm video để củng cố kiến thức, chúc các bạn học tốt...