JavaScript
32K subscribers
1.04K photos
10 videos
33 files
722 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
โœŒ๏ธ The State of JavaScript 2025 Survey

Each year, Devographics runs an epic survey of as many JavaScript community members as it can and turns the results into an interesting report on the state of the ecosystem โ€“ hereโ€™s the results from 2024. If you have the time, fill it in, especially as they format it in a way where you can actually learn about stuff as you go.

Devographics
Please open Telegram to view this post
VIEW IN TELEGRAM
โค2๐Ÿค”2๐Ÿ”ฅ1
CHALLENGE

class DataProcessor {
constructor(value) {
this.value = value;
}

transform(fn) {
return new DataProcessor(fn(this.value));
}

getValue() {
return this.value;
}
}

const multiply = x => x * 2;
const add = x => x + 10;
const square = x => x * x;

const result = new DataProcessor(5)
.transform(multiply)
.transform(add)
.transform(square)
.getValue();

console.log(result);
โค1
What is the output?
Anonymous Quiz
21%
300
26%
100
46%
400
7%
625
โค8๐Ÿ‘3๐Ÿ”ฅ1
CHALLENGE

const Flyable = {
fly() { return 'flying'; }
};

const Swimmable = {
swim() { return 'swimming'; }
};

function mixin(Base, ...mixins) {
mixins.forEach(mixin => Object.assign(Base.prototype, mixin));
return Base;
}

class Bird {}
class Fish {}

const FlyingFish = mixin(class extends Fish {}, Flyable, Swimmable);
const instance = new FlyingFish();
console.log(instance.swim());
console.log(instance.fly());
console.log(instance instanceof Fish);
CHALLENGE

function createCounter() {
let count = 0;
return function(increment = 1) {
count += increment;
return count;
};
}

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

console.log(counter1());
console.log(counter1(5));
console.log(counter2(3));
console.log(counter1());
console.log(counter2());
โค10๐Ÿค”5
CHALLENGE

const arr = [1, 2, 3, 4, 5];
const obj = { a: 1, b: 2, c: 3 };

const result1 = Object.keys(obj).length;
const result2 = arr.length;

delete obj.b;
obj.d = 4;

const result3 = Object.keys(obj).length;
const result4 = arr.push(6);

arr.length = 3;

const result5 = arr.length;
const result6 = Object.keys(obj).join('');

console.log(result1, result2, result3, result4, result5, result6);
๐Ÿค”2
โค6๐Ÿ‘1๐Ÿ”ฅ1
๐Ÿ’ป How Deno Protects Against npm Exploits

The maintainers of the Deno runtime reflect on the recent npm ecosystem security issues and show off how Denoโ€™s non-permissive explicit โ€˜secure by defaultโ€™ model can help.

Andy Jiang
Please open Telegram to view this post
VIEW IN TELEGRAM
โค5๐Ÿ”ฅ3๐Ÿ‘2๐Ÿคฉ1
CHALLENGE

const multiply = (a) => (b) => (c) => a * b * c;

const step1 = multiply(2);
const step2 = step1(3);
const result1 = step2(4);

const partialMult = multiply(5)(6);
const result2 = partialMult(7);

const directResult = multiply(1)(8)(9);

console.log(result1);
console.log(result2);
console.log(directResult);
console.log(typeof step1);
console.log(typeof partialMult);
โค1
๐ŸคŸ 15 Recent Node Features That Can Replace Popular npm Packages

Many features that once required third-party packages are now built into the runtime itself. Hereโ€™s a look at some of the most notable that you may want to experiment with, prior to reducing unnecessary dependencies.

Lizz Parody
Please open Telegram to view this post
VIEW IN TELEGRAM
โค8๐Ÿ”ฅ3
CHALLENGE

function mystery(arr, depth = 0) {
if (arr.length <= 1) return arr;

const mid = Math.floor(arr.length / 2);
const left = mystery(arr.slice(0, mid), depth + 1);
const right = mystery(arr.slice(mid), depth + 1);

const result = [];
let i = 0, j = 0;

while (i < left.length && j < right.length) {
result.push(left[i] <= right[j] ? left[i++] : right[j++]);
}

return result.concat(left.slice(i)).concat(right.slice(j));
}

const arr = [3, 1, 4, 1, 5];
console.log(mystery(arr));
โค4
๐Ÿ”ฅ3โค2๐Ÿ‘1
๐Ÿ˜ฎ New Era for React = Stronger JavaScript Ecosystem ๐Ÿ’™

We're thrilled that React is coming under the The Linux Foundation to create the React Foundation.

React doesnโ€™t live in isolation - It works alongside Node.js, Electron, Webpack, and more. A dedicated foundation means more collaboration, security, and sustainability across the ecosystem.

OpenJS Foundation
Please open Telegram to view this post
VIEW IN TELEGRAM
โค8๐Ÿ‘7๐Ÿค”1
CHALLENGE

const ws = new WeakSet();
const obj1 = { name: 'first' };
const obj2 = { name: 'second' };
const obj3 = obj1;

ws.add(obj1);
ws.add(obj2);
ws.add(obj3);

console.log(ws.has(obj1));
console.log(ws.has(obj3));
console.log(ws.has({ name: 'first' }));
console.log(ws.size);
โค2
โค3๐Ÿ‘3๐Ÿ”ฅ1
Please open Telegram to view this post
VIEW IN TELEGRAM
โค2๐Ÿ”ฅ1๐Ÿคฃ1
CHALLENGE

const obj = {
name: 'Sarah',
greet: () => {
console.log(`Hello, ${this.name}`);
},
sayHi: function() {
const inner = () => {
console.log(`Hi, ${this.name}`);
};
inner();
}
};

obj.greet();
obj.sayHi();