# First Class Function in JS

In JavaScript, functions are considered to be first-class citizens, meaning they are treated as values and can be assigned to variables, passed as arguments to other functions, and returned as values from functions.

A first-class function is a function that can be treated like any other value in the language. This means that you can pass a function as an argument to another function, return a function as a value from a function, and assign a function to a variable.

For example, consider the following code:

```javascript
function square(x) {
  return x * x;
}

var f = square;

console.log(f(4)); // outputs 16
```

In this code, the `square` function is assigned to the variable `f`. `f` is now a reference to the `square` function, and it can be called just like any other function.

Another example of using first-class functions is the `map` function in JavaScript. The `map` function takes a function as an argument and applies that function to each element of an array, returning a new array with the results. Here's an example:

```javascript
var numbers = [1, 2, 3, 4];

var squares = numbers.map(function(x) {
  return x * x;
});

console.log(squares); // outputs [1, 4, 9, 16]
```

In this code, the `map` function takes an anonymous function as an argument, which returns the square of each element in the `numbers` array. The `map` function then returns a new array (`squares`) with the results of applying the function to each element in the original array.
