Use this command (insert your preferred tool)
Please open Telegram to view this post
VIEW IN TELEGRAM
β€8π2π₯2
CHALLENGE
function highlight(strings, ...values) {
return strings.reduce((result, string, i) => {
const value = values[i] ? `<mark>${values[i]}</mark>` : '';
return result + string + value;
}, '');
}
const name = 'Sarah';
const age = 25;
const template = highlight`Hello ${name}, you are ${age} years old!`;
console.log(template);
const empty = highlight`No interpolation here`;
console.log(empty);
1β€8
CHALLENGE
class EventManager {
constructor() {
this.listeners = new Map();
}
addListener(event, callback) {
if (!this.listeners.has(event)) {
this.listeners.set(event, new Set());
}
this.listeners.get(event).add(callback);
}
removeListener(event, callback) {
this.listeners.get(event)?.delete(callback);
}
}
const manager = new EventManager();
const handler = () => console.log('handled');
manager.addListener('click', handler);
manager.removeListener('click', () => console.log('handled'));
console.log(manager.listeners.get('click').size);
What is the output?
Anonymous Quiz
18%
0
39%
TypeError: Cannot read properties of undefined of 'size'
32%
1
11%
undefined
β€4π3π₯1
Supporting both browsers and Node.js, this library lets you read, write and convert popular media file formats (e.g. MP4, MP3, and more) without needing to lean on dependencies like FFmpeg. You can make thumbnails, extract metadata, write code that gets converted into a video, and more. GitHub repo.
Vanilagy
Please open Telegram to view this post
VIEW IN TELEGRAM
1β€7π₯4π3π€©1
CHALLENGE
const data = { a: 1, b: 2, c: 3 };
const { a, ...rest } = data;
const newObj = { ...rest, a, d: 4 };
const arr = [1, 2, 3, 4, 5];
const [first, , third, ...remaining] = arr;
const result = [...remaining, third, first];
console.log(newObj);
console.log(result);
What is the output?
Anonymous Quiz
22%
{ a: 1, b: 2, c: 3, d: 4 } [3, 1, 4, 5]
61%
{ b: 2, c: 3, a: 1, d: 4 } [4, 5, 3, 1]
12%
{ b: 2, c: 3, d: 4, a: 1 } [4, 5, 1, 3]
5%
{ a: 1, d: 4, b: 2, c: 3 } [1, 3, 4, 5]
π3β€2π₯2
A fantastic walkthrough of Chromeβs origins and its evolution over the years. Addy looks at key milestones (multi-process architecture for example), security, its steps into the world of AI, and more.
Addy Osmani
Please open Telegram to view this post
VIEW IN TELEGRAM
1β€6π2π₯2π€©2
CHALLENGE
console.log('1');
setTimeout(() => console.log('2'), 0);
Promise.resolve().then(() => console.log('3'));
queueMicrotask(() => console.log('4'));
setTimeout(() => console.log('5'), 0);
Promise.resolve().then(() => {
console.log('6');
return Promise.resolve();
}).then(() => console.log('7'));
console.log('8');
β€6π₯3π1
What is the output?
Anonymous Quiz
38%
1 8 3 4 6 7 2 5
28%
1 8 4 3 6 2 7 5
17%
1 8 3 6 4 7 2 5
16%
1 2 3 4 5 6 7 8
A project originally spawned from the BBCβs R&D department, Peaks renders audio waveforms to a canvas element and allows scrolling, zooming, and the sort of things you might otherwise see in an audio editor. LGPL licensed.
Chris Needham et al.
Please open Telegram to view this post
VIEW IN TELEGRAM
β€3π2π₯2
CHALLENGE
class CustomError extends Error {
constructor(message) {
super(message);
this.name = 'CustomError';
}
}
try {
try {
throw new CustomError('inner error');
} catch (e) {
console.log(e.name);
throw new Error('outer error');
}
} catch (e) {
console.log(e.message);
console.log(e instanceof CustomError);
}
β€1
What is the output?
Anonymous Quiz
43%
CustomError outer error false
32%
CustomError inner error true
17%
Error outer error false
8%
CustomError outer error true
β€3π₯1
π¨ Eyecons is a VS Code icon theme that automatically adapts the color of icons to fit your editor's main theme β well, from this list anyway.
π7β€1π₯1
CHALLENGE
const original = {
name: 'Sarah',
scores: [85, 92, 78],
details: {
age: 25,
city: 'Portland'
}
};
const copy1 = { ...original };
const copy2 = JSON.parse(JSON.stringify(original));
copy1.name = 'Emma';
copy1.scores.push(95);
copy1.details.age = 30;
console.log(original.name, original.scores.length, original.details.age);
π₯3β€2
β€4