## 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]]