QUESTION: How to work with objects?
Working with objects in JavaScript is a fundamental skill for every developer, as objects are used everywhere to store structured data. They allow combining disparate variables and functions into single logical entities for convenient management of application state.
Creating objects is most often done using the object literal syntax with curly braces. This is the modern industry standard, although technically you can also use the universal new Object() constructor for the same purposes.
Two main approaches are available for getting or changing property values. Dot notation is used when the key name is known in advance and is a valid variable identifier without spaces or special characters.
Square brackets are indispensable when working with dynamic keys whose values are evaluated at runtime, or when keys contain spaces, hyphens, and other special characters.
To analyze the contents of an object, the standard library provides convenient static methods. Object.keys returns an array of keys, Object.values returns an array of values, and Object.entries returns an array of key-value pairs, which is critically important when iterating.
Modern syntax makes it easy to merge objects using the spread operator. You can create a new object from a combination of two old ones, where properties will be sequentially overwritten from left to right.
Historically, the Object.assign method is also used for copying properties, allowing multiple sources to be combined into a target object. However, it is worth remembering that both of these approaches perform only shallow copying, leaving nested objects as references.