The V8 team has made JSON.stringify over twice as fast, giving your apps an automatic performance boost for common tasks like API responses and caching, at least once Node upgrades to V8 13.8 (Node 24 uses V8 13.6). This article unpacks the low-level work behind the speedup.
Patrick Thier (V8)
Please open Telegram to view this post
VIEW IN TELEGRAM
β€8π₯4π2
CHALLENGE
class Counter {
constructor(max) {
this.max = max;
}
*[Symbol.iterator]() {
let current = 0;
while (current < this.max) {
yield current++;
}
}
}
const counter = new Counter(3);
const result = [...counter, ...counter];
console.log(result);
β€4
What is the output?
Anonymous Quiz
25%
[0, 1, 2]
55%
[0, 1, 2, 0, 1, 2]
11%
[]
10%
[0, 0, 1, 1, 2, 2]
β€3π₯3
Please open Telegram to view this post
VIEW IN TELEGRAM
β€4π4π₯1
CHALLENGE
const numbers = [1, 2, 3, 4, 5];
const result = numbers
.map(n => n * 2)
.filter(n => n > 5)
.reduce((acc, n, index) => {
acc.sum += n;
acc.indices.push(index);
return acc;
}, { sum: 0, indices: [] });
console.log(result.sum);
console.log(result.indices);
π€10β€3
What is the output?
Anonymous Quiz
26%
18 [2, 3, 4]
34%
18 [0, 1, 2]
28%
20 [0, 1, 2]
12%
20 [2, 3, 4]
π€24β€4
Sorry for the confusion earlier! The correct answer is actually 24, not 18.
After mapping and filtering, we get
Thanks Fabricio for the note
After mapping and filtering, we get
[6, 8, 10]
, and summing them gives 6 + 8 + 10 = 24
.Thanks Fabricio for the note
π17π€£11π₯4β€1π€©1
CHALLENGE
function processData(data) {
try {
if (!data) {
throw new TypeError('Data is missing');
}
const result = data.process();
return result;
} catch (error) {
console.log(error instanceof ReferenceError ? 1 :
error instanceof TypeError ? 2 :
error instanceof SyntaxError ? 3 : 4);
}
}
processData(null);
π4β€2
β€4π4π₯3π€1
Please open Telegram to view this post
VIEW IN TELEGRAM
π4π€4π₯3β€1
The popular, efficiency-focused package installer now lets you define Node.js, Deno or Bun versions in package.json and pnpm will then download and pin them automatically.
Zoltan Kochan
Please open Telegram to view this post
VIEW IN TELEGRAM
β€6π4π₯1
CHALLENGE
const obj = {
name: 'Sarah',
getName() {
return this.name;
},
getNameArrow: () => {
return this.name;
}
};
const getName = obj.getName;
const getNameArrow = obj.getNameArrow;
console.log(obj.getName());
console.log(getName());
console.log(getNameArrow());
console.log(obj.getNameArrow());
π€1π€©1
What is the output?
Anonymous Quiz
34%
Sarah, undefined, undefined, undefined
25%
Sarah, undefined, Sarah, Sarah
34%
Sarah, Sarah, undefined, undefined
8%
undefined, undefined, undefined, undefined
β€8π€3
Speed up solving programming tasks in any language β Python, JavaScript, Java, and more. Powered by ChatGPT Plus, but 3Γ cheaper! Donβt overpay $20 for ChatGPT Plus β pay just $7.25 and get faster, more accurate answers. Try DevHelperAI now! π
First month FREE !
@devhelperai_bot
Please open Telegram to view this post
VIEW IN TELEGRAM
β€10π4π₯1
CHALLENGE
const target = { name: 'Maya', age: 25 };
const handler = {
get(obj, prop) {
if (prop in obj) {
return obj[prop];
}
return `Property '${prop}' not found`;
},
set(obj, prop, value) {
if (typeof value === 'string') {
obj[prop] = value.toUpperCase();
} else {
obj[prop] = value;
}
return true;
}
};
const proxy = new Proxy(target, handler);
proxy.city = 'tokyo';
console.log(proxy.name);
console.log(proxy.city);
console.log(proxy.country);
β€2
What is the output?
Anonymous Quiz
20%
Maya TOKYO undefined
41%
MAYA TOKYO Property 'country' not found
18%
Maya tokyo undefined
21%
Maya TOKYO Property 'country' not found
β€5π₯1
One of TypeScript's gentlest steps forward, with support for
import defer, --module node20
, and βexpandable hoversβ (below) to see expanded type information in IDEs. We also learn v6.0 will act as a βtransition pointβ to get prepared for the Go-powered βnative portβ of TypeScript due to arrive as TypeScript 7.0.Microsoft
Please open Telegram to view this post
VIEW IN TELEGRAM
β€5π1π₯1
CHALLENGE
const numbers = [1, 2, 3, 4, 5];
const result = numbers
.map(x => x * 2)
.filter(x => x > 5)
.reduce((acc, x) => {
acc.push(x.toString());
return acc;
}, [])
.map(x => x + '!')
.join(' | ');
console.log(result);
console.log(typeof result);
π3β€1
What is the output?
Anonymous Quiz
33%
6! | 8! | 10! string
30%
12 | 16 | 20 string
27%
["6!", "8!", "10!"] object
10%
6! | 8! | 10! object
β€5π2π₯1