## Notes
- Can be interpreted and compiled
- Function as a First Class Citizen
- Dynamic Typing
- Client-side Execution
- Prototype-based OOP
- Garbage Collection
- Function vs Method
## Interpreted Vs Compiled
By default, JavaScript is an interpreted language. Browsers execute JavaScript using a set of rules without needing to compile the language into machine code.
## Function as a First Class Citizen
Functions are first-class citizens, meaning
- They can be stored in variables
- They can be passed as arguments into a function
- They can be returned from a function
## Dynamic Typing
Means we don't have to define the data type of a variable ahead of time. Variables can change their data types (until let/const in ES6).
## Client-side Execution
Supports async programming
## References
- [How Does JavaScript Work - ByteByteGo](https://blog.bytebytego.com/p/ep106-how-does-javascript-work?hide_intro_popup=true)
- [[JavaScript Study MOC]]