JavaScript
31.7K subscribers
989 photos
9 videos
33 files
677 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 fruits = ['apple', 'banana', 'cherry'];
const newFruits = [...fruits];

newFruits.push('date');

const user = { name: 'Taylor', age: 30 };
const updatedUser = { ...user, age: 31 };

user.city = 'Seattle';

console.log(fruits.length, newFruits.length, user.city, updatedUser.city);
❀4
CHALLENGE

const handler = {
get(target, prop) {
if (prop in target) {
return target[prop] * 2;
} else {
return `Property ${prop} not found`;
}
},
set(target, prop, value) {
if (typeof value === 'number') {
target[prop] = Math.round(value);
return true;
}
return false;
}
};

const obj = { a: 5, b: 10 };
const proxy = new Proxy(obj, handler);

proxy.c = 7.8;
proxy.d = "hello";

console.log(obj.c, proxy.a, proxy.x);
❀2
πŸ€”5❀3πŸ‘1
πŸ€” How to Build Your Own Color Search Engine

A straightforward, practical look at bringing together several technologies and skills to create an AI powered color suggestion tool (which you can try here – results may vary, as seen above). The techniques covered can be used for many different practical ends.

LΓΊΓ­ Smyth
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ”₯6❀2πŸ‘2
CHALLENGE

const map = new WeakMap();

let obj1 = { name: 'user1' };
let obj2 = { name: 'user2' };

map.set(obj1, 'data for user1');
map.set(obj2, 'data for user2');

console.log(map.has(obj1));
obj1 = null;

// After garbage collection runs
console.log(map.has(obj1));
console.log(map.get(obj2));
πŸ‘ Milkdown: A Plugin-Driven WYSIWYG Markdown Editor Framework

A WYSIWYG Markdown editor framework based around a plugin system that enables a significant level of customization. The docs are rendered by Milkdown itself and there’s a neat β€˜playground’ experience to try as well. GitHub repo.

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

function createCounter() {
let count = 0;

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

function decrement() {
count--;
return count;
}

return { increment, decrement, reset: () => count = 0 };
}

const counter = createCounter();
counter.increment();
counter.increment();
counter.decrement();

const { increment, reset } = counter;
increment();
reset();
increment();

console.log(counter.increment());
❀3
What is the output?
Anonymous Quiz
30%
1
42%
2
14%
3
14%
undefined
πŸ”₯5❀3πŸ‘2
πŸ˜†
Please open Telegram to view this post
VIEW IN TELEGRAM
🀣35πŸ‘8πŸ”₯5❀3
CHALLENGE

function processUserData(data) {
try {
if (!data) {
throw new Error('No data provided');
}

if (!data.name) {
throw new TypeError('Name is required');
}

return { success: true, user: data.name };
} catch (err) {
if (err instanceof TypeError) {
return { success: false, reason: 'validation-failed' };
}
return { success: false, reason: 'unknown-error' };
}
}

console.log(processUserData({}));
❀3πŸ‘1
CHALLENGE

const cache = new WeakMap();

function expensiveOperation(obj) {
if (cache.has(obj)) {
console.log('Cache hit!');
return cache.get(obj);
}

console.log('Computing result...');
const result = obj.value * 2;
cache.set(obj, result);
return result;
}

const user = { value: 42 };
expensiveOperation(user);
expensiveOperation(user);
expensiveOperation({ value: 42 });
❀2
✌️ jsonrepair: Repair Invalid JSON Documents

This has lots of possible use cases, including dealing with weird JSON coming back from LLMs or non-compliant JSON spat out by poorly built software. You can use it from Node, as a CLI tool, or try a basic version online.

Jos de Jong
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ”₯8❀3πŸ‘1
CHALLENGE

async function fetchData() {
return 'Data loaded';
}

async function processData() {
console.log('Starting...');
try {
const result = fetchData();
console.log(result);
console.log(await result);
return 'Processing complete';
} catch (error) {
return 'Error occurred';
} finally {
console.log('Cleanup');
}
}

processData().then(result => console.log(result));
❀3
🀩 Bruno: An IDE for Exploring and Testing HTTP APIs

An open source (though a commercial version is available) Node and Electron-based desktop app for crafting and testing HTTP requests, complex and simple. Think of it as a lightweight alternative to something like Postman.

Anoop M D, Anusree P S and Contributors
Please open Telegram to view this post
VIEW IN TELEGRAM
❀5πŸ‘3
CHALLENGE

function outer() {
console.log(innerVar);
console.log(typeof innerFunc);

var innerVar = 42;

function innerFunc() {
return innerVar;
}

let anotherVar = 100;
console.log(typeof anotherVar);
}

outer();
❀2