JavaScript
32K subscribers
1.03K photos
9 videos
33 files
707 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 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
🎨 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.
πŸ‘8❀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);
❀5πŸ”₯4πŸ‘2
❀4πŸ‘2
😭 A Major Supply Chain Attack Hits the npm Ecosystem

In July, Socket warned us about a phishing campaign targeting npm package publishers. Sadly, a prolific package author (among others, like DuckDB, who explain how the attack worked on them) fell victim to the scam, resulting in some popular packages becoming compromised (like Chalk, debug, and others).

Gooding, Brown, et al. (Socket)
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ”₯3πŸ€”3❀1
CHALLENGE

const createLogger = (prefix) => (message) => `${prefix}: ${message}`;
const createCounter = () => {
let count = 0;
return () => ++count;
};

const withLogging = (fn) => (...args) => {
const result = fn(...args);
console.log(`Called with: ${args}, Result: ${result}`);
return result;
};

const counter = createCounter();
const loggedCounter = withLogging(counter);
const logger = createLogger('INFO');

console.log(loggedCounter());
console.log(logger(loggedCounter()));
πŸ‘7❀2
CHALLENGE

function createCounter() {
let count = 0;
return {
increment: () => ++count,
decrement: () => --count,
getValue: () => count
};
}

const counter1 = createCounter();
const counter2 = createCounter();
counter1.increment();
counter1.increment();
counter2.increment();
console.log(counter1.getValue() + counter2.getValue());
What is the output?
Anonymous Quiz
20%
4
24%
1
49%
3
7%
2
πŸ‘6πŸ”₯6❀1
πŸ˜†
Please open Telegram to view this post
VIEW IN TELEGRAM
🀣41πŸ‘6
CHALLENGE

const original = {
name: 'Emma',
skills: ['JavaScript', 'Python'],
config: { theme: 'dark', notifications: true }
};

const copy1 = { ...original };
const copy2 = JSON.parse(JSON.stringify(original));
const copy3 = Object.assign({}, original);

copy1.name = 'Sarah';
copy1.skills.push('React');
copy1.config.theme = 'light';

console.log(original.name);
console.log(original.skills.length);
console.log(original.config.theme);
❀4🀣4
πŸ€”7πŸ‘2❀1
🎹 Happy Programmers Day!
Please open Telegram to view this post
VIEW IN TELEGRAM
3❀39πŸ”₯11πŸ‘7
CHALLENGE

const obj = {
name: 'Sarah',
regularMethod: function() {
return () => {
console.log(this.name);
};
},
arrowMethod: () => {
return () => {
console.log(this.name);
};
}
};

const regular = obj.regularMethod();
const arrow = obj.arrowMethod();
regular();
arrow();
❀4
❀2πŸ€”1
Please open Telegram to view this post
VIEW IN TELEGRAM
❀9πŸ€”4πŸ”₯1
CHALLENGE

console.log('1');
setTimeout(() => console.log('2'), 0);
Promise.resolve().then(() => console.log('3'));
setTimeout(() => console.log('4'), 0);
console.log('5');
Promise.resolve().then(() => {
console.log('6');
return Promise.resolve();
}).then(() => console.log('7'));
queueMicrotask(() => console.log('8'));
console.log('9');
πŸ”₯1
❀4πŸ”₯2πŸ‘1
🀟 Node.js v24.8.0 (Current) Released

The big new feature is added support for inspecting HTTP/2 network calls made from Node in Chrome DevTools. There have also been some cryptography related enhancements and npm gets upgraded to v11.6.

MichaΓ«l Zasso
Please open Telegram to view this post
VIEW IN TELEGRAM
❀6πŸ‘3πŸ”₯1