CHALLENGE
const data = {
name: '',
age: 0,
city: null,
country: undefined,
isActive: false
};
const getName = () => data.name || 'Unknown';
const getAge = () => data.age ?? 25;
const getCity = () => data.city || 'Default City';
const getCountry = () => data.country ?? 'Default Country';
const getStatus = () => data.isActive || 'inactive';
console.log(`${getName()}-${getAge()}-${getCity()}-${getCountry()}-${getStatus()}`);
β€3
What is the output?
Anonymous Quiz
34%
Unknown-25-Default City-Default Country-inactive
45%
Unknown-0-Default City-Default Country-inactive
13%
-0--Default Country-false
8%
-25-Default City-Default Country-inactive
β€7π1π₯1
CHALLENGE
const sym1 = Symbol('test');
const sym2 = Symbol('test');
const obj = {
[sym1]: 'first',
[sym2]: 'second',
regular: 'third'
};
const keys = Object.keys(obj);
const symbols = Object.getOwnPropertySymbols(obj);
const allProps = Reflect.ownKeys(obj);
console.log(keys.length);
console.log(symbols.length);
console.log(allProps.length);
console.log(sym1 === sym2);
π₯3β€2
β€4π3π₯1
Interesting idea π€
I always thought that front-end development is much harder then backend, but I was having trouble to explain that idea to developers. Today I wanted to check the opinion of the LLM, so called the general expert's opinion.
Agreed that front-end is harder for humans, because backend scales mathematically, rule based, and it's not that hard to understand. It's just math...
Then I asked, to find a similar analogy for front-end. It nailed. BIOLOGY!
____
Backend scaling: like mathematics: you add more nodes, shard databases, optimize queries - the system grows by formulas and predictable rules.
Frontend change: like biology: small mutations (new device, new browser feature, new UX demand) create emergent, often chaotic behavior that must be adapted to case by case.
____
Biology is more difficult then mathematics β mathematics is rule-bound and deterministic, while biology is emergent, full of exceptions, context-dependent, and constantly changing.
Thatβs why front-end (biology-like) feels messier and harder for humans, even if backend (math-like) can be more abstractly deep.
Edgar Marukyan
I always thought that front-end development is much harder then backend, but I was having trouble to explain that idea to developers. Today I wanted to check the opinion of the LLM, so called the general expert's opinion.
Agreed that front-end is harder for humans, because backend scales mathematically, rule based, and it's not that hard to understand. It's just math...
Then I asked, to find a similar analogy for front-end. It nailed. BIOLOGY!
____
Backend scaling: like mathematics: you add more nodes, shard databases, optimize queries - the system grows by formulas and predictable rules.
Frontend change: like biology: small mutations (new device, new browser feature, new UX demand) create emergent, often chaotic behavior that must be adapted to case by case.
____
Biology is more difficult then mathematics β mathematics is rule-bound and deterministic, while biology is emergent, full of exceptions, context-dependent, and constantly changing.
Thatβs why front-end (biology-like) feels messier and harder for humans, even if backend (math-like) can be more abstractly deep.
Edgar Marukyan
π12π€11β€4π₯1
CHALLENGE
const values = [null, undefined, '', 0, false, NaN];
const results = [];
for (let val of values) {
results.push({
value: val,
boolean: !!val,
string: String(val),
number: Number(val)
});
}
console.log(results[2].boolean);
console.log(results[3].string);
console.log(results[1].number);
β€5π2
What is the output?
Anonymous Quiz
21%
false 0 undefined
42%
false 0 NaN
18%
true 0 NaN
18%
false '0' undefined
β€4π2π₯1
Please open Telegram to view this post
VIEW IN TELEGRAM
π€£25π₯3β€2π€©2
CHALLENGE
class StateMachine {
constructor() {
this.state = 'idle';
this.transitions = {
idle: { start: 'running' },
running: { pause: 'paused', stop: 'stopped' },
paused: { resume: 'running', stop: 'stopped' },
stopped: { reset: 'idle' }
};
}
transition(action) {
const next = this.transitions[this.state]?.[action];
if (next) this.state = next;
return this.state;
}
}
const sm = new StateMachine();
console.log(sm.transition('start'));
console.log(sm.transition('invalid'));
console.log(sm.transition('pause'));
console.log(sm.transition('resume'));
console.log(sm.transition('stop'));
console.log(sm.transition('reset'));
β€7π1
What is the output?
Anonymous Quiz
24%
start invalid pause resume stop reset
34%
running running running running stopped stopped
17%
running idle paused running stopped idle
24%
running running paused running stopped idle
β€3π2π₯2
Prototype pollution π₯
Exposing the default prototype by calling unsafe recursive functions with untrusted data as input
Read ~20mins estimated
learn.snyk.io
Exposing the default prototype by calling unsafe recursive functions with untrusted data as input
Read ~20mins estimated
learn.snyk.io
Please open Telegram to view this post
VIEW IN TELEGRAM
β€8π3π₯2
CHALLENGE
console.log('1');
setTimeout(() => console.log('2'), 0);
Promise.resolve().then(() => console.log('3'));
setTimeout(() => console.log('4'), 0);
Promise.resolve().then(() => {
console.log('5');
return Promise.resolve();
}).then(() => console.log('6'));
console.log('7');
What is the output?
Anonymous Quiz
37%
1 7 3 5 6 2 4
24%
1 7 3 5 2 4 6
24%
1 7 2 4 3 5 6
15%
1 3 5 6 7 2 4
β€5π3π€1
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!
@devhelperai_bot
Please open Telegram to view this post
VIEW IN TELEGRAM
β€3π3π₯2
CHALLENGE
const nums = [1, 2, 3];
const obj = { a: 1, b: 2, c: 3 };
function process(...args) {
const [first, ...rest] = args;
const { a, ...others } = obj;
return { first, rest, a, others };
}
const result = process(...nums);
console.log(result.first);
console.log(result.rest.length);
console.log(result.others.b);
console.log(Object.keys(result.others).join(''));
console.log(result.a === nums[0]);
β€2π1
What is the output?
Anonymous Quiz
25%
1 3 2 bc true
31%
3 2 2 bc true
16%
1 2 2 bc false
29%
1 2 2 bc true
β€5π3π€3
CHALLENGE
let obj = { name: 'Sarah', age: 25 };
let weakMap = new WeakMap();
let map = new Map();
weakMap.set(obj, 'weak reference');
map.set(obj, 'strong reference');
console.log(weakMap.has(obj));
console.log(map.has(obj));
obj = null;
console.log(weakMap.has(null));
console.log(map.has(null));
console.log(map.size);
β€1
What is the output?
Anonymous Quiz
30%
true true true true 1
38%
true true false false 1
21%
true true false false 0
11%
false false false false 0
2β€3π1π₯1
CHALLENGE
function* fibonacci() {
let [a, b] = [0, 1];
while (true) {
yield a;
[a, b] = [b, a + b];
}
}
function* takeWhile(generator, predicate) {
for (const value of generator) {
if (!predicate(value)) break;
yield value;
}
}
const fib = fibonacci();
const smallFibs = takeWhile(fib, x => x < 20);
console.log([...smallFibs].join(','));
π2β€1
What is the output?
Anonymous Quiz
30%
1,1,2,3,5,8,13,21
37%
0,1,1,2,3,5,8,13,21
30%
0,1,1,2,3,5,8,13
3%
0,1,2,3,5,8,13
π₯3β€2π1