JavaScript
31.9K subscribers
1.01K photos
9 videos
33 files
691 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 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πŸ‘2πŸ”₯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
πŸ€”11πŸ‘8❀2
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);
❀4πŸ‘2
❀3πŸ‘2πŸ”₯1
New career opportunity on the rise! πŸ˜†
Please open Telegram to view this post
VIEW IN TELEGRAM
🀣21πŸ”₯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'));
❀6πŸ‘1
Prototype pollution πŸ₯ƒ

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
❀7πŸ‘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');
❀5πŸ‘3πŸ€”1
⚑️ DevHelperAI β€” AI Assistant for Programmers

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
❀3πŸ‘2πŸ”₯1
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
❀5πŸ‘2πŸ€”2
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
2❀1πŸ‘1πŸ”₯1