JavaScript
33K subscribers
1.14K photos
10 videos
33 files
814 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
๐Ÿ‘8๐Ÿค”4โค3๐Ÿคฃ2๐Ÿ”ฅ1
๐Ÿ˜ฎ The 2025 JavaScript Rising Stars

At the start of each year, Michael rounds up the projects in the JavaScript ecosystem that gained the most popularity on GitHub in the prior year. After a two-year run of topping the chart, shadcn/ui has been pushed down to #3 by n8n and React Bits. This is a fantastic roundup, now in its tenth(!) year, and features commentary from a few industry experts too.

Michael Rambeau et al.
Please open Telegram to view this post
VIEW IN TELEGRAM
โค6๐Ÿ‘3๐Ÿ”ฅ3
CHALLENGE

const config = { api: 'v1', timeout: 5000 };
Object.seal(config);

const settings = { theme: 'dark', lang: 'en' };
Object.freeze(settings);

config.api = 'v2';
config.retries = 3;
settings.theme = 'light';
settings.debug = true;

console.log(config.api);
console.log(config.retries);
console.log(settings.theme);
console.log(settings.debug);
๐Ÿ‘4๐Ÿ”ฅ2
๐Ÿ‘5๐Ÿ”ฅ3โค2
โœŒ๏ธ๐ŸŒฒ๐Ÿ“ธ๐ŸŸ ๐Ÿ”ต Schedule-X 3.6: A Material Design Calendar and Date Picker

Available in the form of React/Preact, Vue, Svelte, Angular, or plain JS components. Open source but with a premium version with extra features. GitHub repo.

Tom ร–sterlund
Please open Telegram to view this post
VIEW IN TELEGRAM
โค8๐Ÿ”ฅ3๐Ÿ‘1
CHALLENGE

console.log(typeof myVar);
console.log(typeof myFunc);
console.log(typeof myArrow);

var myVar = 'initialized';

function myFunc() {
return 'function declaration';
}

var myArrow = () => 'arrow function';

console.log(typeof myVar);
console.log(typeof myFunc);
console.log(typeof myArrow);
โค3๐Ÿ‘2๐Ÿ”ฅ1
๐Ÿ‘€ For years, Mozilla, Apple, and the CSS Working Group have been working to bring "masonry" layouts (as above) natively to CSS. The concept is now called CSS Grid Lanes and here's how it works. You can already try it out in Safari Technology Preview 234.
Please open Telegram to view this post
VIEW IN TELEGRAM
โค5๐Ÿ‘3๐Ÿ”ฅ3
CHALLENGE

const data = [
{ type: 'income', amount: 1000, category: 'salary' },
{ type: 'expense', amount: 200, category: 'food' },
{ type: 'income', amount: 500, category: 'freelance' },
{ type: 'expense', amount: 150, category: 'transport' }
];

const result = data.reduce((acc, item) => {
const key = item.type;
acc[key] = (acc[key] || 0) + item.amount;
return acc;
}, {});

console.log(result.income - result.expense);
๐Ÿ‘4โค3๐Ÿ”ฅ1
What is the output?
Anonymous Quiz
24%
undefined
54%
1150
18%
1500
4%
350
๐Ÿ”ฅ6โค5๐Ÿ‘1
CHALLENGE

async function processData() {
const promise1 = Promise.resolve('first');
const promise2 = Promise.reject('error');
const promise3 = Promise.resolve('third');

try {
const result = await Promise.allSettled([promise1, promise2, promise3]);
console.log(result[0].status);
console.log(result[1].reason);
console.log(result[2].value);
} catch (error) {
console.log('caught:', error);
}
}

processData();
โค8๐Ÿ”ฅ2
โค4๐Ÿ‘3๐Ÿ”ฅ3
CHALLENGE

function highlight(strings, ...values) {
return strings.reduce((result, str, i) => {
const value = values[i] ? `<em>${values[i]}</em>` : '';
return result + str + value;
}, '');
}

const name = 'Sarah';
const score = 95;
const message = highlight`Hello ${name}, your score is ${score}!`;
console.log(message);
๐Ÿ”ฅ4๐Ÿ‘2
CHALLENGE

class Counter {
#value = 0;

get count() {
console.log('Getting count');
return this.#value;
}

set count(val) {
console.log('Setting count to', val);
this.#value = Math.max(0, val);
}
}

const counter = new Counter();
counter.count = -5;
console.log(counter.count);
๐Ÿ‘4โค3๐Ÿ”ฅ2
CHALLENGE

const pipe = (...fns) => (value) => fns.reduce((acc, fn) => fn(acc), value);

const add = (x) => (y) => x + y;
const multiply = (x) => (y) => x * y;
const subtract = (x) => (y) => y - x;

const transform = pipe(
add(5),
multiply(3),
subtract(2)
);

console.log(transform(4));
console.log(transform(0));
๐Ÿ”ฅ6๐Ÿ‘3โค2
What is the output?
Anonymous Quiz
19%
27 15
56%
25 13
23%
27 13
3%
25 15
๐Ÿ”ฅ7โค5๐Ÿ‘2
โœŒ๏ธ Web Dependencies are Broken; Can We Fix Them?

Lea, who has worked at the heart of Web Standards for years, delivers a compelling (and educational) call to action about a problem every JavaScript developer has encountered: why is managing dependencies and introducing them into code so unnecessarily messy and what could we do about it?

Lea Verou
Please open Telegram to view this post
VIEW IN TELEGRAM
โค7๐Ÿ‘5
CHALLENGE

const user = { name: 'Sarah', age: 0 };
const config = { theme: '', debug: false };

const result1 = user.age || 25;
const result2 = user.name && user.name.toUpperCase();
const result3 = config.theme || 'light';
const result4 = config.debug && console.log('Debug mode') || 'disabled';

console.log(result1);
console.log(result2);
console.log(result3);
console.log(result4);
๐Ÿ‘6โค4๐Ÿ”ฅ3๐Ÿค”3