JavaScript
31.9K subscribers
1.02K photos
9 videos
33 files
700 links
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
Download Telegram
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);
πŸ‘1🀩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
πŸ“Έ The Hidden Costs of Angular Updates.

πŸ“… 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
❀6πŸ‘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());
❀1
🀩 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
Please open Telegram to view this post
VIEW IN TELEGRAM
❀3πŸ‘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);
❀2πŸ‘2
Please open Telegram to view this post
VIEW IN TELEGRAM
❀4πŸ‘2πŸ”₯1
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);