Jason Orendorff wrote an interesting post on ES6 Symbols:

Since JavaScript was first standardized in 1997, there have been six types. Until ES6, every value in a JS program fell into one of these categories.
  • Undefined
  • Null
  • Boolean
  • Number
  • String
  • Object
... ES6 symbols are values, but they’re not strings. They’re not objects. They’re something new: a seventh type of value.

https://hacks.mozilla.org/2015/06/es6-in-depth-symbols/