Calls: a “call” is the invocation of a JavaScript object (such as a function); Calls are “stacked” in order, executing one at a time in a “Last in, first out” (“LIFO”) schedule. For example, if functions “C”, “B”, and “A” were visualized nested like: [C[B[A]]], they would execute from “inner” to “outer” in “A” “B” “C” order.
a stack overflow is a recursive invocation loop that exceeds the maximum allowed by the hosting environment.
Reference Errors: Caused by invoking undeclared variables.
Syntax Errors: caused by symbol misplacement that makes code unworkable. (Note– some hosting environments have degrees of self-correcting syntax.)
Range Errors: Caused by setting invalid values, like negative array lengths.
Type Errors: Caused by attempting operations on inappropriate types of data for for that operation.
Breakpoints: Lines of code that the execution will stop at, allowing a more focused look at potential sources of error (and fewer invocations in the stack). Breakpoints can be marked with debugger
in the line of code desired.