Use the literal syntax for object creation.
Use computed property names when creating objects with dynamic property names as they allow you to define all the properties of an object in one place.
Use object method shorthand.
Use property value shorthand as it is shorter to write and descriptive.
Group your shorthand properties at the beginning of your object declaration as it's easier to tell which properties are using the shorthand.
Only quote properties that are invalid identifiers as it is subjectively easier to read, improves syntax highlighting, and is also more easily optimized by many JS engines.
Do not call Object.prototype methods directly, such as hasOwnProperty, propertyIsEnumerable, and isPrototypeOf. These methods may be shadowed by properties on the object in question - consider { hasOwnProperty: false } - or, the object may be a null object (Object.create(null)).
Prefer the object spread operator over Object.assign to shallow-copy objects. Use the object rest operator to get a new object with certain properties omitted.