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
CHALLENGE

async function test() {
console.log('1');

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

await Promise.resolve();
console.log('3');

new Promise(resolve => {
console.log('4');
resolve();
}).then(() => {
console.log('5');
});

console.log('6');
}

test();
console.log('7');
πŸ‘5❀3πŸ”₯1
❀14πŸ€”6πŸ‘3
πŸ‘€ Exploring Art with TypeScript, Jupyter, Polars, and Observable Plot

One of Deno’s compelling features is its support for Jupyter Notebooks and easy notebook-style programming, such as is common in the Python world. Trevor looks at a practical use of using such a notebook environment for data exploration.

Trevor Manz
Please open Telegram to view this post
VIEW IN TELEGRAM
❀6πŸ”₯2🀩2πŸ‘1
CHALLENGE

function getCity(person) {
return person?.address?.city ?? 'Unknown';
}

const data = [
null,
{ name: 'Alice' },
{ name: 'Bob', address: null },
{ name: 'Charlie', address: { street: '123 Main' } },
{ name: 'David', address: { city: 'Boston' } }
];

const cities = data.map(getCity);
console.log(cities);
πŸ‘3❀1
🀨 Anime.js 4.0: A JS Animation Library for the Web

If you’re tired of Web animations, maybe Anime.js will refresh your appetite. This is a major upgrade to a mature library for animating CSS properties, SVGs, the DOM, and JS objects. It’s smooth, well-built, and now complete with fresh documentation.

Julian Garner
Please open Telegram to view this post
VIEW IN TELEGRAM
❀6πŸ‘5πŸ”₯4
CHALLENGE

const p1 = Promise.resolve(1);
const p2 = new Promise(resolve => resolve(2));
const p3 = new Promise(resolve => setTimeout(() => resolve(3), 0));
const p4 = Promise.reject(4).catch(err => err);

Promise.all([p1, p2, p3, p4])
.then(values => {
const result = values.reduce((acc, val) => {
return acc + val;
}, 0);
console.log(result);
})
.catch(err => console.log('Error:', err));
❀5πŸ‘1
❀7πŸ€”5πŸ‘2
CHALLENGE

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

const symbols = Object.getOwnPropertySymbols(obj);
const keys = Object.keys(obj);
const allProps = Reflect.ownKeys(obj);

console.log(symbols.length, keys.length, allProps.length);
πŸ‘3❀2
What is the output?
Anonymous Quiz
26%
2 3 5
42%
2 1 3
21%
3 1 3
11%
0 1 1
πŸ‘8❀5πŸ”₯2🀣2πŸ€”1
🀟 Node.js Testing Best Practices

A detailed guide to modern testing in Node from a group of developers who know all about it. It’s on GitHub but is essentially written like a free book covering over 50 battle-tested tips covering areas as diverse as the β€˜Testing Diamond’, testing microservices, checking contracts, verifying OpenAPI correctness, and simulating flaky network conditions.

Goldberg, Salomon, and Gluskin
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘9πŸ”₯3❀2
CHALLENGE

function createCounter() {
let count = 0;

return function() {
count++;
return count;
};
}

const counter1 = createCounter();
const counter2 = createCounter();

counter1();
counter1();
counter2();

const result = counter1() + counter2();
console.log(result);
πŸ‘8πŸ€”8❀4
What is the output?
Anonymous Quiz
24%
3 + 2
38%
5
29%
3
8%
4
πŸ€”10
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘6πŸ€”4❀2
CHALLENGE

// What will be logged when this code runs?
const counter = (() => {
let count = 0;

return {
increment() {
count += 1;
return this;
},
reset() {
count = 0;
return this;
},
get value() {
return count;
}
};
})();

const { increment, value } = counter;

increment();
counter.increment();

console.log(value);
🀣11πŸ‘7❀6πŸ€”3
What is the output?
Anonymous Quiz
25%
undefined
36%
2
23%
0
16%
1
πŸ‘8πŸ€”8🀣2
CHALLENGE

function processConfig(config) {
const defaultPort = 8080;
const defaultTimeout = 5000;

const port = config?.port ?? defaultPort;
const timeout = config?.timeout ?? defaultTimeout;
const debug = config?.debug ?? false;

return {
summary: `Port: ${port}, Timeout: ${timeout}, Debug: ${debug ? 'enabled' : 'disabled'}`,
isUsingDefaults: port === defaultPort && timeout === defaultTimeout
};
}

const result = processConfig({ port: 0, timeout: null });
console.log(result.summary);
πŸ€”4πŸ‘3❀2πŸ”₯1
πŸ€– Firebase Studio: Google's New Agentic AI-Powered Development Environment

Buzzing from the success of Gemini 2.5 Pro for dev tasks, Google’s Firebase team gets in on the AI development action with a Cursor/v0/Lovable-a-like of its own for building apps in the browser.

Google
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘8πŸ”₯4❀1
CHALLENGE

function processUserData(data) {
const settings = {
theme: data.preferences?.theme ?? 'light',
notifications: data.preferences?.notifications ?? true,
fontSize: data.preferences?.fontSize ?? 16
};

let status = data.status ?? 'active';
let reputation = data.reputation ?? 0;

console.log(reputation || 'No reputation yet');
return settings;
}

processUserData({ status: '', reputation: 0 });
❀3πŸ‘3πŸ€”1