JavaScript
31.9K subscribers
1.01K photos
9 videos
33 files
693 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
Please open Telegram to view this post
VIEW IN TELEGRAM
๐Ÿ‘6โค5๐Ÿ”ฅ2
CHALLENGE

const companies = [
{ name: 'TechCorp', founded: 2010 },
{ name: 'DataSystems', founded: 2015 },
{ name: 'WebSolutions', founded: 2008 }
];

const activeClients = new WeakSet();

activeClients.add(companies[0]);
activeClients.add(companies[2]);

companies.pop();

const result = [
activeClients.has(companies[0]),
activeClients.has(companies[1]),
typeof activeClients.size
];

console.log(result);
โค4๐Ÿ‘1๐Ÿค”1
โœŒ๏ธ Love/Hate: Upgrading to Web2.5 with Local-First

Kyle Simpson - dotJS 2025
Please open Telegram to view this post
VIEW IN TELEGRAM
๐Ÿ‘3โค2๐Ÿค”2
CHALLENGE

function processConfig(config) {
const defaults = {
timeout: 1000,
retries: 3,
enabled: false,
count: 0
};

const settings = {
...defaults,
...config
};

const effectiveTimeout = settings.timeout ?? 500;
const effectiveRetries = settings.retries ?? 1;
const effectiveEnabled = settings.enabled ?? true;
const effectiveCount = settings.count ?? 5;

console.log([effectiveTimeout, effectiveRetries, effectiveEnabled, effectiveCount]);
}

processConfig({ timeout: null, retries: 0, enabled: undefined });
๐Ÿ‘5๐Ÿค”1
๐Ÿ”ฅ7โค5๐Ÿ‘1๐Ÿค”1
Please open Telegram to view this post
VIEW IN TELEGRAM
๐Ÿ‘5๐Ÿ”ฅ3โค2
CHALLENGE

console.log('Start');

setTimeout(() => {
console.log('Timeout 1');
}, 0);

Promise.resolve().then(() => {
console.log('Promise 1');
}).then(() => {
console.log('Promise 2');
});

setTimeout(() => {
console.log('Timeout 2');
}, 0);

console.log('End');
โค4
โœŒ๏ธ You Don't Know JS Yet: The Unbooks

This ~420pg ebook is a collection of all 4 remaining "unbooks" of the 2nd edition of "You Don't Know JS Yet" book series.

Kyle Simpson
Please open Telegram to view this post
VIEW IN TELEGRAM
1๐Ÿ‘10โค4๐Ÿ”ฅ4๐Ÿค”1
CHALLENGE

const a = 9007199254740991n;
const b = 2n;

function performCalculation() {
const c = a + 1n;
const d = c / b;
const e = d * 2n - 1n;

const result = Number(e) === Number(a);
console.log(result);
}

performCalculation();
๐Ÿ‘7
๐Ÿ‘11๐Ÿค”6โค4
CHALLENGE


const obj = {
[Symbol('a')]: 'hidden',
a: 'visible',
[Symbol.for('b')]: 'registered',
b: 123
};

const symbol1 = Symbol.for('b');
const symbol2 = Symbol.for('b');

console.log(obj.a + ', ' +
obj[Symbol('a')] + ', ' +
obj[symbol1] + ', ' +
(symbol1 === symbol2));
โค2๐Ÿ”ฅ2๐Ÿ‘1
๐Ÿ‘ p5.js 2.0: The JavaScript Library for Creative Coding

A popular Processing-inspired creative coding library that makes it easy to create interactive, visual experiences (examples). v2.0 improves its font support, adds more ways to draw and manipulate text, adds a way to write shaders in JavaScript, and much more. p5.js 2.0: You Are Here has more details on the release and where the project is headed next.

p5.js Team
Please open Telegram to view this post
VIEW IN TELEGRAM
๐Ÿ‘7๐Ÿ”ฅ2โค1
CHALLENGE

function* counter() {
let i = 0;
while (true) {
const direction = yield i;
if (direction === 'up') i += 2;
else if (direction === 'down') i -= 1;
else i += 1;
}
}

const count = counter();
console.log(count.next().value);
console.log(count.next('up').value);
console.log(count.next('down').value);
console.log(count.next().value);
๐Ÿ‘1๐Ÿ”ฅ1
๐Ÿ‘4โค3๐Ÿ”ฅ3
๐Ÿคจ Creating a 3D Split-Flap Display with JavaScript

A split-flap display is a electro-mechanical display commonly associated with live timetable displays and it makes for a neat effect on the Web too. Jhey breaks down how to replicate it, or you can hit up this live demo.

Jhey Tompkins
Please open Telegram to view this post
VIEW IN TELEGRAM
๐Ÿ‘7๐Ÿ”ฅ3โค1๐Ÿค”1
CHALLENGE

function* genSequence() {
const result = yield 'first';
console.log(result);
yield* [1, 2];
return 'done';
}

const gen = genSequence();
let next = gen.next('ignored');
console.log(next.value);
next = gen.next('second');
next = gen.next();
console.log(next.value);
next = gen.next();
console.log(next);
๐Ÿ‘3โค2๐Ÿ”ฅ1