Skip to content
Foxipa
Code Completion 8 Challenges

Complete the JavaScript Symbols Code

Practice Symbol keys, registry operations, reflection, and protocol hooks.

Advanced ~8 min read

Challenge 1

Create a Symbol property key

javascript Your answer
const key = Symbol("id");
const record = { [key]: 42 };
console.log(record[ ]);

Press Ctrl⌘Enter to check your answer

Challenge 2

Retrieve a registered Symbol

javascript Your answer
const key = Symbol.for("app.cache");
const same = Symbol.for( );

Press Ctrl⌘Enter to check your answer

Challenge 3

Read a registry key

javascript Your answer
const key = Symbol.for("feature.flag");
const name = Symbol.keyFor( );

Press Ctrl⌘Enter to check your answer

Challenge 4

Get Symbol-only own keys

javascript Your answer
const keys = Object.getOwnPropertySymbols({ [Symbol("x")]: 1 });
console.log(keys.length);
// complete: 

Press Ctrl⌘Enter to check your answer

Challenge 5

Get all own property keys

javascript Your answer
const keys = Reflect.ownKeys({ name: "Ada", [Symbol("id")]: 1 });
console.log(keys);
// complete: 

Press Ctrl⌘Enter to check your answer

Challenge 6

Define the synchronous iterator hook

javascript Your answer
const range = {
  [Symbol.iterator]() {
    return [1, 2][Symbol.iterator]();
  }
};
console.log([...range]);
// complete: 

Press Ctrl⌘Enter to check your answer

Challenge 7

Define a primitive-conversion hook

javascript Your answer
const value = { [Symbol.toPrimitive]() { return 7; } };
console.log(+value);
// complete: 

Press Ctrl⌘Enter to check your answer

Challenge 8

Define a custom object brand

javascript Your answer
const value = { [Symbol.toStringTag]: "Record" };
console.log(Object.prototype.toString.call(value));
// complete: 

Press Ctrl⌘Enter to check your answer