The author takes us back ten years to the genesis of Prettier, the popular opinionated, deterministic code formatter he co-created with James Long. Prettier effectively introduced and popularized the practice of fully-automated AST-based code formatting in the JavaScript ecosystem.
Christopher Chedeau (Vjeux)
Please open Telegram to view this post
VIEW IN TELEGRAM
β€11π2π₯1
CHALLENGE
class Calculator {
static multiply(a, b) {
return a * b;
}
static add = (a, b) => {
return a + b;
}
}
class ScientificCalculator extends Calculator {
static multiply(a, b) {
return super.multiply(a, b) * 2;
}
}
console.log(Calculator.multiply(3, 4));
console.log(ScientificCalculator.add(5, 6));
console.log(ScientificCalculator.multiply(2, 3));
β€3
β€4π€3π2π₯2
Graphviz is a suite of open source graph drawing tools of over 30 yearsβ vintage. Viz.js is a WebAssembly Graphviz build that brings its functionality into the browser. GitHub repo.
Michael Daines
Please open Telegram to view this post
VIEW IN TELEGRAM
β€6π2π₯1
CHALLENGE
class Observable {
constructor(subscriber) {
this.subscriber = subscriber;
}
subscribe(observer) {
return this.subscriber(observer);
}
map(fn) {
return new Observable(observer => {
return this.subscribe({
next: value => observer.next(fn(value)),
error: err => observer.error(err),
complete: () => observer.complete()
});
});
}
}
const source = new Observable(observer => {
observer.next(1);
observer.next(2);
observer.complete();
});
const doubled = source.map(x => x * 2);
doubled.subscribe({
next: value => console.log(value),
complete: () => console.log('done')
});
What is the output?
Anonymous Quiz
16%
1 2 done
56%
2 4 done
18%
undefined undefined done
10%
[object Object] [object Object] done
β€4π1π₯1
Please open Telegram to view this post
VIEW IN TELEGRAM
β€2π1π₯1
CHALLENGE
const a = 9007199254740991n;
const b = BigInt(9007199254740991);
const c = 9007199254740992;
const d = BigInt(9007199254740992);
console.log(a === b);
console.log(Number(a) === c);
console.log(c === Number.MAX_SAFE_INTEGER + 1);
console.log(d > a);
console.log(typeof (a + 1n));
console.log(Number(d) === c);
What is the output?
Anonymous Quiz
22%
true true true true bigint true
42%
true false true true bigint true
29%
false true true false number true
7%
true true false true bigint false
β€3
CHALLENGE
const userInput = "<script>alert('xss')</script>";
const sanitized = userInput
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''');
const credentials = {
username: 'admin',
password: 'secret123'
};
const safeLog = (obj) => {
const { password, ...safe } = obj;
return JSON.stringify(safe);
};
console.log(sanitized);
console.log(safeLog(credentials));
What is the output?
Anonymous Quiz
24%
<script>alert("xss")</script> {"username":"admin"}
34%
<script>alert('xss')</script> {"username":"admin","password":"secret123"}
10%
{"username":"admin"}
β€4π₯3π1
CHALLENGE
const wm = new WeakMap();
const obj1 = {};
const obj2 = {};
const obj3 = obj1;
wm.set(obj1, 'first');
wm.set(obj2, 'second');
wm.set(obj3, 'third');
console.log(wm.get(obj1));
console.log(wm.get(obj2));
console.log(wm.get(obj3));
console.log(wm.has(obj1));
console.log(wm.size);
What is the output?
Anonymous Quiz
29%
third second third true undefined
27%
third second first true 2
35%
first second third true 3
9%
first second first false undefined
π₯3β€1π1
CHALLENGE
const data = '{"name": "Maria", "age": 25, "skills": ["JavaScript", "Python"]}';
try {
const parsed = JSON.parse(data);
const modified = {
...parsed,
age: parsed.age + 5,
skills: [...parsed.skills, "TypeScript"]
};
const serialized = JSON.stringify(modified, null, 0);
const reparsed = JSON.parse(serialized);
console.log(reparsed.skills.length);
console.log(typeof reparsed.age);
} catch (error) {
console.log('Parse error');
}
β€2
π2π₯2π€2β€1
CHALLENGE
const numbers = [1, 2, 3, 4, 5];
const pipeline = (...fns) => (value) => fns.reduce((acc, fn) => fn(acc), value);
const multiply = (x) => (y) => x * y;
const add = (x) => (y) => x + y;
const square = (x) => x * x;
const transform = pipeline(
multiply(2),
add(3),
square
);
const result = numbers.map(transform);
console.log(result);
π5β€1
What is the output?
Anonymous Quiz
25%
[4, 16, 36, 64, 100]
47%
[25, 49, 81, 121, 169]
22%
[16, 36, 64, 100, 144]
5%
[9, 25, 49, 81, 121]
π2β€1
The latest cutting edge version of Node has arrived with Web Storage enabled by default, JSON.stringify perf improvements, a new --allow-net option in the permission model, built-in Uint8Array base64/hex conversion, and WebAssembly and JIT optimizations. As shown in the diagram above, this means Node 24 will soon be promoted to being the 'active' LTS release and Node 22 will enter its 'maintenance' LTS phase.
Rafael Gonzaga
Please open Telegram to view this post
VIEW IN TELEGRAM
π5β€3π₯1