- Operators, operands, operator precedence (unary, binary, ternary)
- Dynamic Type system: types and conversion
- Value type vs. Reference type
- Expression vs. Statement
- Scope
- Hoisting
- Overloading
- Prototypal inheritance vs. Classical inheritance
- Instancing
All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout*. This is also called reflow or layout thrashing, and is common performance bottleneck.
elem.offsetLeft,elem.offsetTop,elem.offsetWidth,elem.offsetHeight,elem.offsetParentelem.clientLeft,elem.clientTop,elem.clientWidth,elem.clientHeightelem.getClientRects(),elem.getBoundingClientRect()