Functions

Hàm

Hàm được định nghĩa là biểu thức có thể thực thi, bao gồm tên hàm, tham số đầu vào và giá trị trả về.
Ví dụ sau định nghĩa hàm lập phương:

1
2
3
function cube(number) {
  return number * number * number;
}

Trong JavaScript có hai dạng truyền tham số vào hàm:

  • Truyền tham số theo giá trị, khi truyền tham số là dữ liệu nguyên thủy.
  • Truyền tham số theo tham chiếu, khi truyền tham số là kiểu object.

Ví dụ sau truyền tham số là object và thay đổi giá trị của object đó trong hàm.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
function myFunc(theObject) {
  theObject.make = 'Toyota';
  theObject.model = 'Camry';
}

var mycar = {
  make: 'Honda',
  model: 'Accord',
  year: 1998
};

myFunc(mycar);
mycar.make; // "Toyota"
mycar.model; // "Camry:

Biểu thức hàm

Biểu thức hàm là hàm số được gán vô một biến, hàm này là hàm không tên hoặc hàm có tên:

1
2
3
4
5
6
7
const square = function(number) { return number * number };

// biểu thức hàm có tên fac
const factorial = function fac(n) {
  return n < 2 ? 1 : n * fac(n - 1);
}
console.log(factorial(3))

Các biểu thức hàm thường được sử dụng khi truyền một hàm làm đối số cho hàm khác.

1
2
3
4
5
6
7
// biểu thức hàm cube
const cube = function(x) {
  return x ** 3;
}
let numbers = [0, 1, 2, 5, 10];
let cubeNumbers = numbers.map(cube); // truyền hàm cube cho hàm map
console.log(cubeNumbers); // [0, 1, 8, 125, 1000]