Syntax Parser
A program that reads your code and determines what it does and if its grammar is valid.
Your code isn's magic. Someone else wrote a program to translate it for the computer (Compiler, Interpreter..etc)
Your code:
Gets translated, the syntax parser is in between
function hello() {
var a = 'hello;;
}
Computer instructions:
Engine that is interpreting the code, is doing extra stuff!
function
variable
Lexical Environment
Where something sits physically in the code you write.
A lexical environment exists in programming languages in which where you write something is important.
function hello() {
var a = 'hello; // This variable sits lexically in that function
}
Execution Context
A wrapper to help manage the code that is running.
There are lots of lexical environments. Which one is currently running is managed via execution context. It can contain things beyond what you've written in your code.
Single Threaded, Synchronous Execution
Single Threaded - One command is execute at a time.
Javascript behaves in a single threaded
Synchronous - One at a time (One line at a time being executed, and in order)
Dynamic Typing
You dont tell the engine what type of data a variable holds, if figures it out while your code is running
Primitive Types
- Type of Data that represent a single value - Not an object
- Undefined
- Null
- Boolean
- Number (Floating point number - always some decimal)
- String (Sequence of character both '' and "" can be used)
- Symbol - Used in ES6