JavaScript
31.9K subscribers
1.01K photos
9 videos
33 files
693 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
❀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πŸ‘10❀3
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
🀣23πŸ”₯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πŸ€”3πŸ‘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❀2πŸ‘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(','));
❀1πŸ‘1
πŸ”₯3❀2πŸ‘1
🀟 Eliminating JavaScript Cold Starts on AWS Lambda

Porffor is a rapidly developing ahead-of-time JavaScript compiler with a major benefit being extremely quick process launch times (think sub-millisecond). This is certainly more a taste of the future, and something to experiment with, rather than something you want to imminently deploy into production.

Oliver Medhurst
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘5❀3πŸ”₯1
CHALLENGE

const user = {
name: 'Sarah',
age: 25,
getName() { return this.name; },
getAge: () => this.age
};

const methods = {
regular: user.getName,
arrow: user.getAge
};

console.log(methods.regular());
console.log(methods.arrow());
console.log(user.getName());
console.log(user.getAge());