There are two main types of data types in JS - reference and primitive. Here is a quick overview of the differences
Reference data types are accessed by reference - it is a pointer to a location in memory. Their data is stored on the heap. If it is an object, it is a reference type.
Some of the main references types are:
Object literals, Arrays, Functions, etc
This would be the typical normal way of storing data, by value. It is stored on the stack.
There are 6 main primitive types:
String, Number (there is no real distinction between floats, integers in JS. They are all stored as floats.), Null, Boolean, Undefined and Symbols (since ES6)