Functions

This lesson covers the fundamentals of Functions in JavaScript.

Functions are a very important tool we use to perform tasks and calculations of all kinds. In JavaScript, we can declare a function in different ways.

Let’s have a look at a function definition:

Press + to interact
function greet(name){
console.log("hello " + name);
}
greet("Alberto")
// hello Alberto

This is a simple function that when called will log a string. The variable inside the parenthesis at line 1, is called a parameter while the code inside of the curly brackets is a statement, in this case a very simple console.log().

A very important thing to remember is that primitives are passed to a function by value, meaning that the changes done to those values are not reflected globally. On the other hand, if the value is not a primitive, such as an Object or an Array, it is then passed by reference, meaning that any modification done to it will be reflected in the original Object.

Press + to interact
let myInt = 1;
function increase(value){
return value +=1;
}
console.log(myInt);
// 1
console.log(increase(myInt));
// 2
console.log(myInt);
// 1

As you can see, we increased the value of the integer, but that didn’t affect the original variable. Let’s look at an example with an Object.

Press + to interact
let myCar = {
make: "bmw",
color: "red"
}
console.log(myCar)
// {make: "bmw", color: "red"}
function changeColor(car){
car.color = "blue"
}
changeColor(myCar)
console.log(myCar)
// {make: "bmw", color: "blue"}

As you can see, since the parameter car was just a reference to the Object myCar, modifying it resulted in a change in the myCar Object.

Another way of declaring a function is by using a function expression.

Press + to interact
const greeter = function greet(name){
console.log("hello " + name);
}
greeter("Alberto")
// hello Alberto

Here we assigned our function greet to a const, called greeter. We got the same result as in ...