Good article.
It might be worth mentioning Symbols are also allowed. I've only run into them as object keys in some Google cloud libs. The only reason I like them (conceptually) is that they're harder to manually re-create when constants should be used since each instance is unique. I believe this is their explicit reason for existing.