Tìm hiểu về arrow function là gì trong JavaScript và cách sử dụng nó. Đơn giản hóa việc viết mã, giúp bạn có thể lập trình JavaScript dễ dàng và nhanh chóng.
Trong lập trình JavaScript, arrow function là một cú pháp mới giúp việc viết mã nhanh hơn, gọn hơn và dễ đọc hơn. Với những ưu điểm đó, arrow function đang trở thành một phần không thể thiếu trong việc lập trình JavaScript.
Giới thiệu arrow function trong JavaScript
Arrow function được giới thiệu trong phiên bản ECMAScript 6. Nó là một khái niệm mới trong lập trình JavaScript, giúp việc viết mã được đơn giản hóa hơn. Arrow function có thể được sử dụng thay thế cho function thông thường và có cú pháp đơn giản hơn.
Cách sử dụng arrow function
Cách sử dụng arrow function không khác gì so với function thông thường. Arrow function cũng có thể được truyền vào đối số, hoặc gán cho một biến.
Ví dụ, một function thông thường:
function sum(a, b) {
return a + b;
}
Có thể được viết lại dưới dạng arrow function:
let sum = (a, b) => a + b;
Cú pháp của arrow function vô cùng đơn giản và dễ hiểu. Sử dụng arrow function sẽ giúp cho mã nguồn trở nên ngắn gọn hơn và dễ đọc hơn.
Trong phần tiếp theo, chúng ta sẽ tìm hiểu chi tiết hơn về cú pháp của arrow function.
Cú pháp của arrow function

Cú pháp cơ bản của arrow function
Cú pháp của arrow function khá đơn giản và dễ hiểu. Nó bao gồm các thành phần sau:
(argument) => (expression)
Trong đó, argument
là các đối số truyền vào hàm, expression
là biểu thức được thực thi và =>
được gọi là toán tử chuyển tiếp.
Ví dụ, ta có thể viết hàm tính tổng bằng arrow function như sau:
let sum = (a, b) => a + b;
Trong đó, a
và b
là các đối số truyền vào hàm, a + b
là biểu thức được thực thi và =>
là toán tử chuyển tiếp.
Cách lồng ghép arrow function với các cú pháp khác
Arrow function có thể được lồng ghép với các cú pháp khác trong JavaScript để tạo ra mã nguồn đơn giản và dễ đọc hơn.
Ví dụ, để lấy ra tất cả các phần tử đầu tiên của một mảng, ta có thể sử dụng phương thức slice
kết hợp với arrow function như sau:
let arr = [1, 2, 3, 4, 5];
let result = arr.slice(0, 3).map((item) => item * 2);
console.log(result); // [2, 4, 6]
Trong đó, slice(0, 3)
là phương thức lấy ra các phần tử từ vị trí đầu tiên đến vị trí thứ 3, map
là phương thức áp dụng arrow function lên từng phần tử trong mảng để thực hiện phép tính item * 2
.
Tóm lại, arrow function là một cú pháp đơn giản và tiện ích giúp cho việc viết mã JavaScript trở nên dễ dàng và nhanh chóng hơn.
Đối tượng this trong arrow function

Trong JavaScript, đối tượng this
là một khái niệm quan trọng và thường được sử dụng trong các function. Tuy nhiên, khi sử dụng arrow function, cách hoạt động của this
sẽ có một số thay đổ
Sự khác biệt giữa this trong arrow function và function thông thường
Trong function thông thường, giá trị của this
được xác định bởi cách gọi hàm. Nếu gọi function thông thường bằng cách sử dụng call()
, apply()
hoặc bind()
thì giá trị của this
sẽ được xác định theo đối tượng truyền vào.
Tuy nhiên, khi sử dụng arrow function, giá trị của this
sẽ được binding với giá trị của this
trong phạm vi mà arrow function được khai báo. Nói cách khác, this
trong arrow function sẽ được xác định bởi giá trị của this
ngoài arrow function, chứ không phải bởi cách gọi arrow function.
Ví dụ minh họa về đối tượng this trong arrow function
Để hiểu rõ hơn về cách hoạt động của this
trong arrow function, chúng ta có thể xem một ví dụ đơn giản:
let person = {
name: "John Smith",
greeting: function() {
setTimeout(() => {
console.log(`Hello, my name is ${this.name}`);
}, 1000);
}
};
person.greeting(); //Output: Hello, my name is John Smith
Trong ví dụ trên, setTimeout()
được sử dụng để xuất ra một chuỗi ký tự sau một khoảng thời gian nhất định. Arrow function được sử dụng để định nghĩa hàm callback cho setTimeout()
. Tại thời điểm thực thi, this
trong arrow function sẽ được binding với giá trị của this
trong phạm vi của person
. Do đó, giá trị của this.name
sẽ là "John Smith"
, và kết quả được xuất ra trong console sẽ là "Hello, my name is John Smith"
.
Trên đây là những điều cơ bản để các bạn hiểu sâu hơn về arrow function và đối tượng this
. Chúng ta sẽ tiếp tục tìm hiểu những vấn đề khác liên quan đến arrow function ở các phần tiếp theo của bài viết.
Đối số của arrow function

Khi sử dụng arrow function trong JavaScript, chúng ta cũng có thể truyền đối số vào. Điều này giúp chúng ta thực hiện các tính toán trên các giá trị được truyền vào.
Cách truyền đối số vào arrow function
Chúng ta có thể truyền đối số vào arrow function qua hai cách:
- Sử dụng cú pháp truyền thống:
let multiply = (a, b) => {
return a * b;
}
let result = multiply(2, 3);
console.log(result); // 6
- Sử dụng cách ngắn gọn hơn:
let multiply = (a, b) => a * b;
let result = multiply(2, 3);
console.log(result); // 6
Các cách sử dụng đối số trong arrow function
Chúng ta cũng có thể sử dụng các đối số được truyền vào arrow function để thực hiện tính toán.
Ví dụ:
let multiply = (a, b) => {
let result = a * b;
console.log(`Tích của ${a} và ${b} là: ${result}`);
return result;
}
let result = multiply(2, 3); // 6
Trong ví dụ trên, chúng ta sử dụng đối số để tính toán và in ra kết quả của phép nhân giữa hai số.
Khi sử dụng arrow function, chúng ta cũng có thể sử dụng rest parameters để truyền vào các đối số không giới hạn. Điều này giúp chúng ta thực hiện các tính toán trên nhiều giá trị cùng lúc.
Trên đây là những cách sử dụng đối số trong arrow function. Trong phần tiếp theo, chúng ta sẽ tìm hiểu về mối liên hệ giữa arrow function và callback function.
Arrow function và callback function

Trong lập trình Javascript, callback function là một khái niệm quan trọng, thường được sử dụng trong việc xử lý bất đồng bộ (asynchronous) hoặc xử lý sự kiện (event handling). Callback function là một hàm được truyền vào như một tham số của một hàm khác, và sẽ được gọi lại vào một thời điểm sau đó.
Giải thích khái niệm callback function
Để hiểu rõ hơn về callback function, hãy xem xét ví dụ sau:
function doSomething(callback) {
// Xử lý một số công việc ở đây
callback();
}
doSomething(function() {
console.log("Đã gọi callback function");
});
Trong đoạn mã trên, hàm doSomething
nhận một tham số là một callback function. Sau khi thực hiện xong các công việc trong hàm doSomething
, callback function sẽ được gọi lại và thực hiện các công việc khác.
Sự liên kết giữa arrow function và callback function
Arrow function có thể được sử dụng để viết callback function một cách nhanh chóng và đơn giản hơn. Chẳng hạn, xem xét ví dụ sau:
const numbers = [1, 2, 3, 4, 5];
const squareNumbers = numbers.map(number => number * number);
console.log(squareNumbers);
Trong đoạn mã trên, chúng ta sử dụng hàm map
để biến đổi các phần tử của một mảng. Hàm map
nhận vào một callback function, và arrow function được sử dụng ở đây để định nghĩa callback function đó. Arrow function này nhận vào một tham số number
, và trả về bình phương của number
.
Sử dụng arrow function trong callback function sẽ giúp cho mã nguồn trở nên ngắn gọn và dễ đọc hơn. Chúng ta cũng có thể sử dụng arrow function trong các hàm khác như setTimeout
, setInterval
,… để viết code hiệu quả hơn.
Arrow function và closure

Trong lập trình JavaScript, closure là một khái niệm quan trọng giúp cho việc lập trình trở nên dễ dàng và hiệu quả hơn. Trong phần này, chúng ta sẽ tìm hiểu về closure và cách sử dụng nó với arrow function.
Khái niệm closure trong JavaScript
Closure là một hàm có thể truy cập đến các biến nằm trong phạm vi của hàm cha, ngay cả khi hàm cha đã kết thúc thực thĐiều này có nghĩa là các biến nằm trong phạm vi của hàm cha được bảo vệ và không thể bị thay đổi bởi bất kỳ hàm nào khác.
Ví dụ, ta có thể tạo một closure như sau:
function greeting(name) {
let message = "Hello, " + name + "!";
return function() {
console.log(message);
};
}
let sayHello = greeting("John");
sayHello(); // Hello, John!
Trong ví dụ trên, hàm greeting
trả về một hàm con, mà hàm con này có thể truy cập vào biến message
nằm trong phạm vi của hàm cha greeting
.
Cách sử dụng closure với arrow function
Arrow function cũng có thể sử dụng closure để truy cập vào các biến nằm trong phạm vi của hàm cha. Tuy nhiên, arrow function không có đối tượng this
riêng, nên phải sử dụng closure để truy cập vào các biến ngoài phạm vi của arrow function.
Ví dụ:
let a = 5;
let add = () => {
let b = 10;
return a + b;
}
console.log(add()); // 15
Trong ví dụ trên, arrow function add
có thể truy cập vào biến a
nằm ngoài phạm vi của nó nhờ vào closure. Biến b
là biến nằm trong phạm vi của arrow function add
.
Kết hợp với closure, arrow function trở nên cực kỳ linh hoạt và mạnh mẽ trong lập trình JavaScript.
Ở phần tiếp theo, chúng ta sẽ đánh giá các ưu và nhược điểm của arrow function.
Kết luận
Như vậy, chúng ta đã tìm hiểu về khái niệm arrow function trong JavaScript. Arrow function là một cú pháp mới giúp cho việc lập trình JavaScript trở nên dễ dàng hơn, code ngắn gọn hơn, dễ đọc và hiểu hơn.
Arrow function sử dụng cú pháp đơn giản hơn so với function thông thường, giúp đơn giản hóa mã nguồn và tăng tốc độ lập trình.
Tuy nhiên, cũng có những nhược điểm của arrow function như khả năng sử dụng đối tượng “this” khác với function thông thường hoặc khả năng sử dụng closure.
Tóm lại, sử dụng arrow function hay function thông thường còn tùy thuộc vào mục đích và nhu cầu của từng dự án. Với những dự án có mã nguồn phức tạp, viết dài, arrow function sẽ giúp cho việc lập trình trở nên dễ dàng hơn và tiết kiệm thời gian hơn.
Cảm ơn bạn đã đọc bài viết và hy vọng nội dung này sẽ giúp bạn hiểu rõ hơn về arrow function trong JavaScript.
Aloteen – Nơi chia sẻ kiến thức và kết nối các bạn trẻ.