CHALLENGE
class StateMachine {
constructor() {
this.state = 'idle';
this.transitions = {
idle: { start: 'running' },
running: { pause: 'paused', stop: 'idle' },
paused: { resume: 'running', stop: 'idle' }
};
}
transition(action) {
const validTransitions = this.transitions[this.state];
if (validTransitions && validTransitions[action]) {
this.state = validTransitions[action];
return true;
}
return false;
}
}
const machine = new StateMachine();
console.log(machine.transition('pause'));
console.log(machine.state);
console.log(machine.transition('start'));
console.log(machine.state);
π€©2π1
What is the output?
Anonymous Quiz
24%
true paused false paused
44%
false idle true running
20%
false paused true running
11%
true running false running
π3β€2π₯1
CHALLENGE
const userInput = "<script>alert('xss')</script>";
const sanitized = userInput.replace(/<script[^>]*>.*?<\/script>/gi, '');
const users = new Map();
users.set('admin', { password: 'secret123', role: 'admin' });
users.set('guest', { password: 'guest', role: 'user' });
function authenticate(username, password) {
const user = users.get(username);
return user && user.password === password ? user.role : null;
}
const role1 = authenticate('admin', 'secret123');
const role2 = authenticate('guest', 'wrong');
const role3 = authenticate('hacker', 'secret123');
console.log(sanitized);
console.log(role1, role2, role3);
β€4π3π₯1
What is the output?
Anonymous Quiz
19%
'' null null null
34%
admin null null
23%
'' admin null null
23%
<script>alert('xss')</script> admin null null
π September 3, 4 PM UTC
π Host: Armen Vardanyan
π€ Guest: GΓ©rΓ΄me Grignon
Weβll cover:
- What ng update does well
- Where the hidden costs appear in real projects
- Refactoring & dependency pitfalls
- How upgrades affect teams & long-term maintainability
Check the Linkedin post to learn more.
Please open Telegram to view this post
VIEW IN TELEGRAM
β€8π2π₯1
CHALLENGE
const obj = {
name: 'Sarah',
getName() { return this.name; },
getNameArrow: () => this.name
};
const { getName, getNameArrow } = obj;
const boundGetName = obj.getName.bind(obj);
console.log(getName());
console.log(getNameArrow());
console.log(boundGetName());
console.log(obj.getName());
console.log(obj.getNameArrow());
β€2
What is the output?
Anonymous Quiz
29%
undefined undefined Sarah Sarah undefined
38%
Sarah Sarah Sarah Sarah Sarah
24%
Sarah undefined undefined Sarah Sarah
9%
undefined Sarah Sarah Sarah undefined
β€8π₯2π1
A set of JavaScript libraries to build things like this 3D CT scan viewer, PET-CT scan viewer, and much more besides. Thereβs a lot to this project, along with numerous tutorials.
Open Health Imaging Foundation
Please open Telegram to view this post
VIEW IN TELEGRAM
β€4π3π₯2
CHALLENGE
function processData() {
try {
console.log('start');
throw new Error('oops');
console.log('after throw');
} catch (e) {
console.log('catch');
return 'caught';
} finally {
console.log('finally');
}
console.log('end');
}
const result = processData();
console.log(result);
β€3π2π€©1
What is the output?
Anonymous Quiz
29%
start catch finally caught
34%
start catch finally end caught
31%
start after throw catch finally caught
6%
start catch end finally caught
π€3
Use this command (insert your preferred tool)
Please open Telegram to view this post
VIEW IN TELEGRAM
β€9π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
17%
0
40%
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]
60%
{ 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]
6%
{ a: 1, d: 4, b: 2, c: 3 } [1, 3, 4, 5]
π4β€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β€7π3π₯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');
β€7π₯4π3
What is the output?
Anonymous Quiz
35%
1 8 3 4 6 7 2 5
28%
1 8 4 3 6 2 7 5
18%
1 8 3 6 4 7 2 5
19%
1 2 3 4 5 6 7 8