Function Expression

The function keyword can be used to define a function inside an expression.

const sum = function total(x, y) {
  return x + y;
};

You will not be able to call the function using its name total. Instead, you must use the alias sum to invoke the function. The function name can be omitted to create anonymous functions in a function expression.

const sum = function (x, y) {
  return x + y;
};

In anonymous functions, you will not be able to refer to the function within itself, e.g., for recursion.

Anonymous Functions

An anonymous function is one without a name after the function keyword:

const mean = function (x, y) {
  return (x + y) / 2;
};

In contrast, a named function has a name after the function keyword.

A common use for anonymous functions is as arguments to other functions.

const numbers = [1, 2, 3, 4, 5, 6, 7];

const evens = numbers.filter(function (x) { 
  return x % 2 === 0; 
});

console.log(evens);