Understanding the JavaScript Call Stack
This is as simple as when you try to use a variable that is not yet declared you get this type os errors. This is also a common thing when using const and let, they are hoisted like var and function but there is a time between the hoisting and being declared so when you try to access them a reference error occurs, the fact that this happens to let and const is called Temporal Dead Zone (TDZ).
Range errors Try to manipulate an object with some kind of length and give it an invalid length and this kind of errors will show up. An array for instance cannot have a negative length
Like the name indicates, this types of errors show up when the types (number, string and so on) you are trying to use or access are incompatible, like accessing a property in an undefined type of variable.
Breakpoints make your code stop at a set point
putting “debugger” in your code works just like a breakpoint.