Just a few weeks until the 2021 JavaScript Full-Stack Bootcamp opens.
Signup to the waiting list!

The answer is: it depends!

Primitive types are passed by value.

Objects are passed by reference.

Primitive types are numbers, strings, booleans, null, undefined and symbols.

Everything that’s not a primitive type is an object. Arrays are objects. Functions are objects.

When you pass a number to a function, it’s copied into the function:

const increment = num => {
  num = num + 1

const num = 2

console.log(num) //2

If you pass an object, it’s passed by reference, so if you modify one of its properties, also the original object is modified:

const increment = num => {
  num.value = num.value + 1

const num = {
  value: 2


console.log(num.value) //3

The 2021 JavaScript Full-Stack Bootcamp will start at the end of March 2021. Don't miss this opportunity, signup to the waiting list!

More js tutorials: