JavaScript
32.1K subscribers
1.05K photos
10 videos
33 files
728 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

const userInput = "<script>alert('xss')</script>";
const sanitized = userInput
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;')
.replace(/"/g, '&quot;')
.replace(/'/g, '&#x27;');

const credentials = {
username: 'admin',
password: 'secret123'
};

const safeLog = (obj) => {
const { password, ...safe } = obj;
return JSON.stringify(safe);
};

console.log(sanitized);
console.log(safeLog(credentials));
❀4πŸ”₯3πŸ‘1
CHALLENGE

const wm = new WeakMap();
const obj1 = {};
const obj2 = {};
const obj3 = obj1;

wm.set(obj1, 'first');
wm.set(obj2, 'second');
wm.set(obj3, 'third');

console.log(wm.get(obj1));
console.log(wm.get(obj2));
console.log(wm.get(obj3));
console.log(wm.has(obj1));
console.log(wm.size);
CHALLENGE

const data = '{"name": "Maria", "age": 25, "skills": ["JavaScript", "Python"]}';

try {
const parsed = JSON.parse(data);
const modified = {
...parsed,
age: parsed.age + 5,
skills: [...parsed.skills, "TypeScript"]
};

const serialized = JSON.stringify(modified, null, 0);
const reparsed = JSON.parse(serialized);

console.log(reparsed.skills.length);
console.log(typeof reparsed.age);
} catch (error) {
console.log('Parse error');
}
❀6
πŸ‘3πŸ”₯2πŸ€”2❀1
CHALLENGE

const numbers = [1, 2, 3, 4, 5];

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

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

const transform = pipeline(
multiply(2),
add(3),
square
);

const result = numbers.map(transform);
console.log(result);
πŸ‘6❀3
🀟 Node.js v25.0.0 (Current) Released

The latest cutting edge version of Node has arrived with Web Storage enabled by default, JSON.stringify perf improvements, a new --allow-net option in the permission model, built-in Uint8Array base64/hex conversion, and WebAssembly and JIT optimizations. As shown in the diagram above, this means Node 24 will soon be promoted to being the 'active' LTS release and Node 22 will enter its 'maintenance' LTS phase.

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

function Vehicle(type) {
this.type = type;
}

Vehicle.prototype.describe = function() {
return `This is a ${this.type}`;
};

function Car(brand) {
Vehicle.call(this, 'car');
this.brand = brand;
}

Car.prototype = Object.create(Vehicle.prototype);
Car.prototype.constructor = Car;

Car.prototype.describe = function() {
return Vehicle.prototype.describe.call(this) + ` made by ${this.brand}`;
};

const tesla = new Car('Tesla');
console.log(tesla.describe());
console.log(tesla.constructor.name);
❀2
A minimal CheatEngine implementation built with Rust and a terminal UI.

Do you think it’s possible to create something similar with JavaScript?
❀2πŸ‘2πŸ”₯1πŸ€”1
CHALLENGE

const Maybe = {
of: (value) => ({ value, map: f => value == null ? Maybe.nothing() : Maybe.of(f(value)) }),
nothing: () => ({ value: null, map: () => Maybe.nothing() })
};

const result = Maybe.of(5)
.map(x => x * 2)
.map(x => x > 15 ? null : x)
.map(x => x + 1)
.map(x => x.toString());

console.log(result.value);
πŸ€”3
What is the output?
Anonymous Quiz
16%
undefined
56%
11
20%
null
8%
NaN