TGViewer
Channel Public Channel
JavaScript

JavaScript

@javascript

A resourceful newsletter featuring the latest and most important news, articles, books and updates in the world of #javascript 🚀 Don't miss our Quizzes!

Let's chat: @nairihar
Subscribers
31.1K
Photos
1.2K
Videos
10
Links
895

Showing posts older than #2617 · Back to latest

Older Posts 20 shown
Post #2616 4.01K
  • 👍 3
  • 🔥 3
  • ❤ 2
Post #2615 4.02K
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);
Post #2614 4.27K
🙂 Mediabunny: A Complete Media Toolkit for JavaScript

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
  • ❤ 8
  • 🔥 4
  • 👍 3
  • 🤩 1
Post #2613 3.66K
  • ❤ 4
  • 👍 3
  • 🔥 2
Post #2612 3.84K
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);
Post #2610 3.62K
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);
  • ❤ 8
Post #2607 3.92K
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);
  • ❤ 4
  • 👍 3
  • 🤩 1
Post #2606 3.87K
🤩 Cornerstone3D 4.0: Build Web-Based Medical Imaging Apps

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
  • ❤ 4
  • 👍 3
  • 🔥 2
Post #2605 3.97K
  • ❤ 9
  • 🔥 2
  • 👍 1
Post #2604 3.8K
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
Post #2601 3.94K
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
Post #2600 3.96K
  • ❤ 2
  • 👍 2
  • 🔥 2
Post #2599 4.1K
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
  • 👍 1
Post #2598 3.84K
  • ❤ 5
  • 👍 3
  • 🔥 2
Post #2597 4.1K
CHALLENGE

const obj = { a: 1, b: { c: 2 } };
const frozen = Object.freeze(obj);
frozen.a = 99;
frozen.b.c = 88;
frozen.d = 77;

const sealed = Object.seal({ x: 10, y: 20 });
sealed.x = 30;
sealed.z = 40;
delete sealed.y;

console.log(obj.a, obj.b.c, obj.d);
console.log(sealed.x, sealed.y, sealed.z);
  • ❤ 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →