JavaScript
32.1K subscribers
1.05K photos
10 videos
33 files
726 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
๐Ÿ’ป 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๐Ÿคฉ2
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
โค9๐Ÿ”ฅ4๐Ÿ‘2๐Ÿคฉ1
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));
โค5
๐Ÿ”ฅ3โค2๐Ÿ‘2
๐Ÿ˜ฎ 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
โค10๐Ÿ‘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
โค3๐Ÿ”ฅ2๐Ÿคฃ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();
โค2
โค7๐Ÿคฃ4๐Ÿค”2๐Ÿ”ฅ1
CHALLENGE

class Observable {
constructor(subscribe) {
this.subscribe = subscribe;
}

map(fn) {
return new Observable(observer => {
return this.subscribe({
next: value => observer.next(fn(value)),
error: err => observer.error(err),
complete: () => observer.complete()
});
});
}
}

const source = new Observable(observer => {
observer.next(1);
observer.next(2);
observer.complete();
});

const doubled = source.map(x => x * 2);
doubled.subscribe({
next: value => console.log(value),
complete: () => console.log('done')
});
โค3๐Ÿค”2
โค2๐Ÿ‘2๐Ÿ”ฅ2๐Ÿค”2
๐Ÿ’Œ Vite: The Documentary

From the same creators of the fantastic ๐Ÿ˜‰ Node.js, ๐Ÿ˜‰ Angular and ๐Ÿ˜‰ React documentaries comes an up to date look at Vite, the build tool that has taken the JavaScript ecosystem by storm in recent years. Many luminaries make an appearance to tell their stories, including Evan You, Rich Harris, and Ryan Carniato. (39 minutes.)

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

const obj = {
name: 'Sarah',
greet() {
return `Hello, ${this.name}`;
},
delayedGreet() {
const fn = function() {
return this.greet();
};
return fn.call(this);
}
};

const result = obj.delayedGreet();
console.log(result);
โค3
โค5๐Ÿ‘1๐Ÿ”ฅ1๐Ÿค”1๐Ÿคฉ1
๐Ÿ“ฅ The Birth of Prettier

The author takes us back ten years to the genesis of Prettier, the popular opinionated, deterministic code formatter he co-created with James Long. Prettier effectively introduced and popularized the practice of fully-automated AST-based code formatting in the JavaScript ecosystem.

Christopher Chedeau (Vjeux)
Please open Telegram to view this post
VIEW IN TELEGRAM
โค11๐Ÿ‘2๐Ÿ”ฅ1
CHALLENGE

class Calculator {
static multiply(a, b) {
return a * b;
}

static add = (a, b) => {
return a + b;
}
}

class ScientificCalculator extends Calculator {
static multiply(a, b) {
return super.multiply(a, b) * 2;
}
}

console.log(Calculator.multiply(3, 4));
console.log(ScientificCalculator.add(5, 6));
console.log(ScientificCalculator.multiply(2, 3));
โค3
โค4๐Ÿค”3๐Ÿ‘2๐Ÿ”ฅ2
๐Ÿ‘€ Viz.js 3.20: Work with Graphviz in the Browser

Graphviz is a suite of open source graph drawing tools of over 30 yearsโ€™ vintage. Viz.js is a WebAssembly Graphviz build that brings its functionality into the browser. GitHub repo.

Michael Daines
Please open Telegram to view this post
VIEW IN TELEGRAM
โค6๐Ÿ‘2๐Ÿ”ฅ1