Can JavaScript Object Property Name Have Hyphens?

JavaScript object property names can be any string, including having hyphens in the name. However, object property names that are not valid JavaScript identifiers, can only be:

  1. Specified using quotes, and;
  2. Accessed using the bracket property accessor notation.

For example, the following is a valid property name:

const obj = { 'foo-bar': 123 };

console.log(obj['foo-bar']); // 123

You can even have hyphens at start or the end of the property name:

const cssVar = { '--dark-color': '#000' };

console.log(cssVar['--dark-color']); // '#000'

This post was published by Daniyal Hamid. Daniyal currently works as the Head of Engineering in Germany and has 20+ years of experience in software engineering, design and marketing. Please show your love and support by sharing this post.