Reference vs Value
Objects and arrays are stored by reference; copying a reference points to the same underlying data. When you assign an object to a new variable, you're creating another reference to the same object in memory.
Reference equality uses === to check if two variables point to the same object. Value equality requires deep comparison of all properties.
Function references allow multiple variables to point to the same function. This enables function passing and higher-order functions.
Reference semantics enable efficient memory usage by avoiding unnecessary copying of large data structures.