Пояснение
В качестве имени свойства объекта может быть строка или symbol.
В строке могут быть любые строковые символы: !;"%:?*_ и т.п. Соответственно, все они могут быть именами свойства объекта.
Чтобы интерпретатор не выдал синтаксическую ошибку, подумав, что "необычный" символ является частью синтаксической конструкции или какого-то оператора, необходимо использовать строковой литерал для задания имени свойства и получения его значения.
let x = {
'$': 1,
'.': 2,
'!!': 3,
};
console.log(x['$'], x['.'], x['!!']); // 1, 2, 3