Heads up! To view this whole video, sign in with your Courses account or enroll in your free 7-day trial. Sign In Enroll
Preview
Start a free Courses trial
to watch this video
Using constants prevents values from being reassigned but how do they work with arrays and objects?
We've seen that you cannot reassign a
constant variable in the case of a number
0:00
or a string.
0:04
The same goes for
any value of a constant variable.
0:05
You cannot reassign strings, numbers,
booleans, objects, and arrays.
0:08
Unlike strings, numbers and booleans,
objects in arrays have methods and
0:14
properties that modify the objects or
array.
0:18
Do they still work with const?
0:22
First, we'll declare a variable
which is a constant called days.
0:24
This will contain an array
with a single string, Monday.
0:33
Second, we'll declare
another constant variable,
0:39
person, that contains an object's literal
0:45
with a first_name key,
with the string Imogen.
0:51
Let's attempt to modify
these in the console here.
0:59
First, days, Let's use the push method
to add another date to the array.
1:02
It didn't error.
1:14
It returned the number 2,
meaning the new array length.
1:16
If we type days and hit Enter,
we get Monday and Tuesday returned.
1:21
Let's try and add a last_name property
to the person object, Again no error.
1:28
When we type person and hit Enter,
we get an object literal back
1:38
with the first_name and
last_name properties.
1:42
So what's happening here?
1:47
Const doesn't prevent complex objects like
arrays and objects from being modified.
1:49
It just prevents them from being
reassigned or overwritten completely.
1:55
For example, when I attempt to overwrite
2:00
person with another object literal.
2:06
It shows an error, because I'm attempting
to reassign person with a new object.
2:16
However, if I modified the first_name,
2:25
To equal another value,
Andrew, I don't get any errors.
2:32
You need to sign up for Treehouse in order to download course files.
Sign up