JavaScript: Property Key
JavaScript property key must be strings type or Symbol type. Property value can be any type.
Property String Key
String property keys example:
// string property keys const obj = {"a":1, b:2}; const ks = Object.keys(obj); console.log(typeof ks[0] === "string"); // true console.log(typeof ks[1] === "string"); // true
If a key is not symbol or string, it is converted to string implicitly.
console.log( {"3":4, 3:7} ); // { '3': 7 } // the second key 3 overrides the first, because it's converted to string
When in a literal expression for object {β¦}
, the property names are converted to string, not evaluated as variable.
const aa = "bb"; const oo = {aa:4}; // aa is converted to "aa", not evaluated as variable console.log( oo.aa === 4 ); // true console.log( oo.bb === undefined ); // true
Computed Property Key, Object Literal Expression
To evaluate a variable as property key, use ES2015 feature, by putting it inside a square bracket.
const aa = "bb"; const oo = {[aa]:4}; console.log( oo["bb"] ); // 4
[see ES2015 Object Literal Expression Extensions]