CHALLENGE
function processConfig(config) {
const settings = {
timeout: config.timeout ?? 1000,
retries: config.retries ?? 3,
logging: config.logging ?? false,
debug: config.debug || true
};
return settings;
}
const userConfig = {
timeout: 0,
retries: null,
logging: false,
debug: false
};
console.log(processConfig(userConfig));
π8β€1
What is the output?
Anonymous Quiz
21%
{ timeout: 1000, retries: null, logging: false, debug: true }
30%
{ timeout: 1000, retries: 3, logging: false, debug: false }
39%
{ timeout: 0, retries: 3, logging: false, debug: true }
10%
{ timeout: 0, retries: 3, logging: false, debug: false }
π₯7β€3π3
CHALLENGE
const createMathOps = (base) => {
return {
add: (x) => base + x,
multiply: (x) => base * x
};
};
const createAdvancedMathOps = (base) => {
const basicOps = createMathOps(base);
return {
...basicOps,
square: () => basicOps.multiply(base),
addThenSquare: (x) => {
const added = basicOps.add(x);
return added * added;
}
};
};
const calculator = createAdvancedMathOps(5);
console.log(calculator.addThenSquare(3));
π7β€1
π€£20π€15β€4
CHALLENGE
const obj = { name: 'Alice', age: 30 };
const handler = {
get(target, prop) {
return prop in target ? target[prop] : `Property '${prop}' doesn't exist`;
}
};
const proxy = new Proxy(obj, handler);
const descriptors = Object.getOwnPropertyDescriptors(obj);
Reflect.defineProperty(obj, 'city', {
value: 'New York',
enumerable: false
});
console.log(proxy.city, proxy.country);
β€3π₯2
What is the output?
Anonymous Quiz
41%
New York Property 'country' doesn't exist
22%
New York undefined
29%
Property 'city' doesn't exist Property 'country' doesn't exist
8%
undefined Property 'country' doesn't exist
π7β€3π₯2
Adonis is a popular TypeScript-first 'batteries included' web framework with a rich set of features, and its developers say theyβre βshifting gearsβ and stepping up with more frequent major releases. v7 promises a lot, including Node.js diagnostic channel support, a type-safe URL builder, a new encryption layer, first-class support for notifications and TanStack Query, plus more. Youβre encouraged to give your feedback here.
Romain Lanz
Please open Telegram to view this post
VIEW IN TELEGRAM
β€5π₯3π2
CHALLENGE
const text = 'Today is 2023-12-31 and tomorrow is 2024-01-01';
const dateRegex = /(\d{4})-(\d{2})-(\d{2})/g;
let result = '';
let match;
while ((match = dateRegex.exec(text)) !== null) {
const [fullMatch, year, month, day] = match;
result += `${day}/${month}/${year.slice(2)} `;
}
console.log(result.trim());
β€5π2
What is the output?
Anonymous Quiz
33%
31/12/23 01/01/24
35%
2023-12-31 2024-01-01
19%
31/12/2023 01/01/2024
13%
31/12/23
β€4π€4π1
CHALLENGE
function* counter() {
let count = 1;
while (true) {
const reset = yield count++;
if (reset) {
count = 1;
}
}
}
const gen = counter();
console.log(gen.next().value);
console.log(gen.next().value);
console.log(gen.next(true).value);
console.log(gen.next().value);
π6β€2
π5β€3π₯1π€1
CHALLENGE
function outer() {
console.log(typeof inner);
console.log(typeof inner2);
var inner = function() {
return 'Inside inner';
};
function inner2() {
return 'Inside inner2';
}
console.log(typeof inner);
console.log(typeof inner2);
}
outer();
π4
What is the output?
Anonymous Quiz
30%
function function function function
36%
undefined undefined function function
12%
function undefined function function
21%
undefined function function function
π5β€2π₯2
Whatβs New? β Itβs that time of year again. The Ecma General Assembly has approved the ES2025 language specification, which you can read in full here if you have a gallon of coffee to hand β or you can enjoy Dr. Axelβs more succinct explainer instead.
Dr. Axel Rauschmayer
Please open Telegram to view this post
VIEW IN TELEGRAM
β€6π3π₯2π€1
CHALLENGE
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const result = numbers
.filter(num => num % 2 === 0)
.map(num => num * 2)
.reduce((acc, curr, idx, arr) => {
if (idx === arr.length - 1) {
return (acc + curr) / arr.length;
}
return acc + curr;
}, 0);
console.log(result);
β€8π1
Dr. Axel asks us to imagine if we had to write JavaScript without any whitespace or comments, so why should we have to write regexes that way? He has some tips for making the process more pleasant.
Dr. Axel Rauschmayer
Please open Telegram to view this post
VIEW IN TELEGRAM
β€7π₯2π€2π1
CHALLENGE
const cache = new WeakMap();
const user1 = { name: 'Alice' };
const user2 = { name: 'Bob' };
cache.set(user1, { lastLogin: 'yesterday' });
cache.set(user2, { lastLogin: 'today' });
const result = [];
result.push(cache.has(user1));
result.push(cache.get(user2).lastLogin);
let user3 = { name: 'Charlie' };
cache.set(user3, { lastLogin: 'now' });
result.push(cache.has(user3));
user3 = null; // Removing the reference
// Garbage collector might run here in real situations
const user4 = { name: 'Charlie' }; // Same name, different object
result.push(cache.has(user4));
console.log(result);
β€5
What is the output?
Anonymous Quiz
24%
[false, 'today', true, false]
41%
[true, 'today', true, false]
16%
[true, undefined, true, false]
20%
[true, 'today', true, true]
π8π₯3β€1
CHALLENGE
const items = ['apple', 'banana', 'cherry', 'date'];
const result = items
.map(item => item.toUpperCase())
.filter(item => item.length > 5)
.reduce((acc, item, index) => {
return acc + (index === 0 ? '' : '-') + item.slice(0, 3);
}, '');
console.log(result);
β€2