- Primitive types
- Reference types
1) Primitive types
- It consists of Number, String, Boolean, null, and undefined.
- If we assign a primitive type to a variable, we can think of it as we putting that particular value in a particular memory box.
- When we assign a value of one variable to another it will be copied into that new variable.
Let me make it more clear for you by an example:
Look at an above simple example, There I have defined name variable by assigning String primitive type. In order to demonstrate the above-stated points about primitive types, I have created the second variable with name anotherName and copied the value of the name variable into it. Then, I changed the value of anotherName variable to something else. Then, I have printed both variables.
As you can clearly see, Both values are different that clearly proves that values are copied in the case of Primitive types.
2) Reference types
- Now you can probably guess about Reference types. It consists of Array, Object, and Function.
- In the case of Reference types Variables actually don't have the actual values but it contains a reference to that particular value.
- Here, Reference simply means a pointer to another memory location that holds particular value. This might be sound confusing for you at first glance but bear with me. Once you go through it would be very clear to you.
You might have a question that Why Reference types created although we could simply just copy the values:
Answer: It is not always optimal to just copy the values when we are assigning value to a variable. Because copying the values would cost large overhead as it needs to allocate a new memory block and copies the values from that location to this newly allocated memory location. It would be easy in the case of Primitive types as it would not contain many values as arrays or objects.
So this behavior is implemented to save time and memory both. :)
Here ends the topic, primitive types vs reference types. Sometimes developers might think that this is not an important topic. But It always makes you technically sound developer as you know the fundamentals of the particular language.
I hope you liked it and let me know your thought on this topic by commenting down below.
Follow me on twitter: https://twitter.com/ykhokhaneshiya