What is the output?
Anonymous Quiz
25%
default default undefined
33%
undefined undefined undefined
14%
null default default
29%
default default default
❤3👍1🔥1
CHALLENGE
function processData() {
try {
console.log('start');
throw new Error('oops');
console.log('unreachable');
} catch (e) {
console.log('caught');
return 'error';
} finally {
console.log('cleanup');
}
console.log('end');
}
const result = processData();
console.log(result);🔥9❤7👍4
What is the output?
Anonymous Quiz
23%
start oops cleanup undefined
48%
start caught cleanup error
17%
start caught end error
12%
start caught cleanup undefined
❤6🤔3👍2🔥1
CHALLENGE
const target = { name: 'Sarah', age: 25 };
const handler = {
get(obj, prop) {
if (prop === 'toString') {
return () => `Person: ${obj.name}`;
}
return Reflect.get(obj, prop);
},
set(obj, prop, value) {
if (prop === 'age' && value < 0) {
return false;
}
return Reflect.set(obj, prop, value);
}
};
const proxy = new Proxy(target, handler);
proxy.age = -5;
proxy.location = 'NYC';
console.log(proxy.toString());
console.log(proxy.age);
console.log(proxy.location);❤9👍6🔥2
What is the output?
Anonymous Quiz
34%
Person: Sarah 25 NYC
34%
Person: Sarah undefined NYC
16%
Person: Sarah 25 undefined
16%
Person: Sarah -5 NYC
👍4❤1🔥1
CHALLENGE
const obj = {
name: 'Sarah',
greet() {
console.log(`Hello, ${this.name}`);
}
};
const person = { name: 'Mike' };
const func = obj.greet;
obj.greet();
func();
func.call(person);
person.hello = obj.greet;
person.hello();🔥7👍5❤3
CHALLENGE
const source = { a: 1, b: { c: 2 } };
const target1 = Object.assign({}, source);
const target2 = { ...source };
source.b.c = 99;
target1.a = 10;
target2.b.c = 50;
console.log(source.a);
console.log(source.b.c);
console.log(target1.a);
console.log(target1.b.c);
console.log(target2.a);
console.log(target2.b.c);❤5👍4🔥3
What is the output?
Anonymous Quiz
30%
1 50 10 50 1 50
29%
10 99 10 99 10 99
17%
1 2 10 2 1 2
23%
1 99 10 99 1 99
❤5👍3🔥2
Four stalwarts of the JavaScript ecosystem all shipped notable releases this week, and odds are you're using at least one of them:
• Gatsby v5.16 proves Gatsby, once considered neck-and-neck with Next.js in the React world, is not 'dead'. The headline feature is React 19 support.
• Babel 7 just shipped its final release. "After years in the making, Babel 8 is finally ready," in release candidate form, at least.
• Rspress 2.0 is a major release for the high-performance Rust-powered, but JavaScript-facing, static site generator.
• Lodash 4.17.23 sounds minor, but it's a 'security reset' for the still heavily used utility library and is designed to provide a base for a longer future.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍5❤4
CHALLENGE
const memoize = (fn) => {
const cache = new Map();
return (...args) => {
const key = JSON.stringify(args);
if (cache.has(key)) return cache.get(key);
const result = fn(...args);
cache.set(key, result);
return result;
};
};
const fibonacci = memoize((n) => {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
});
console.log(fibonacci(10));
console.log(fibonacci(5));
console.log(fibonacci(10));🔥8❤4👍2
❤2🔥2👍1
Why use a proper locale-aware API to parse numbers when you can hand-roll a maze of string splits, separator swaps, and implicit type coercions that silently break on edge cases?
Remy Porter (The Daily WTF)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥6👍3
CHALLENGE
let counter = 0;
const increment = () => ++counter;
const getValue = () => counter;
const obj = {
get value() {
increment();
return getValue();
}
};
console.log(obj.value);
console.log(obj.value);
console.log(counter);
❤8🔥5👍2
❤2👍2🔥1
Generate customized interactive heatmaps (think GitHub contributions graph), or render heatmaps as lines and bar charts. The site is packed with demos to enjoy. GitHub repo.
William Troup
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🔥8👍5
CHALLENGE
const target = { name: "Sarah", age: 25 };
const handler = {
get(obj, prop) {
if (prop === 'greeting') {
return `Hello, I'm ${obj.name}`;
}
return obj[prop]?.toString().toUpperCase() || 'UNKNOWN';
},
set(obj, prop, value) {
if (typeof value === 'string') {
obj[prop] = value.toLowerCase();
} else {
obj[prop] = value * 2;
}
return true;
}
};
const proxy = new Proxy(target, handler);
console.log(proxy.name);
proxy.city = "Boston";
proxy.score = 15;
console.log(proxy.greeting);
console.log(proxy.city + " " + proxy.score);👍16❤6🔥4
What is the output?
Anonymous Quiz
30%
SARAH Hello, I'm Sarah boston 30
32%
sarah Hello, I'm Sarah boston 15
18%
SARAH Hello, I'm sarah boston 30
20%
SARAH Hello, I'm Sarah BOSTON 30
❤5👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤5🔥4
CHALLENGE
class DataProcessor {
static #cache = new Map();
static #initialized = false;
static {
console.log('First block');
this.#cache.set('default', 'value1');
}
static {
console.log('Second block');
this.#cache.set('config', 'value2');
this.#initialized = true;
}
static getStatus() {
return `${this.#cache.size}-${this.#initialized}`;
}
}
console.log(DataProcessor.getStatus());👍4❤3