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
Post #2738
3.63K
- 🔥 2
- ❤ 1
- 👍 1
JA @javascript
Showing posts older than #2739 · Back to latest
class EventManager {
constructor() {
this.listeners = new Map();
}
addListener(event, callback) {
if (!this.listeners.has(event)) {
this.listeners.set(event, new Set());
}
this.listeners.get(event).add(callback);
}
removeAllListeners() {
this.listeners.clear();
}
}
const manager = new EventManager();
const obj = { data: new Array(1000).fill('memory') };
manager.addListener('test', () => obj.data.length);
manager.removeAllListeners();
console.log(manager.listeners.size);const Maybe = {
of: (value) => ({ value, map: f => value == null ? Maybe.nothing() : Maybe.of(f(value)) }),
nothing: () => ({ value: null, map: () => Maybe.nothing() })
};
const result = Maybe.of(5)
.map(x => x * 2)
.map(x => x > 15 ? null : x)
.map(x => x + 1)
.map(x => x.toString());
console.log(result.value);
function Vehicle(type) {
this.type = type;
}
Vehicle.prototype.describe = function() {
return `This is a ${this.type}`;
};
function Car(brand) {
Vehicle.call(this, 'car');
this.brand = brand;
}
Car.prototype = Object.create(Vehicle.prototype);
Car.prototype.constructor = Car;
Car.prototype.describe = function() {
return Vehicle.prototype.describe.call(this) + ` made by ${this.brand}`;
};
const tesla = new Car('Tesla');
console.log(tesla.describe());
console.log(tesla.constructor.name);
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);
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');
}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);
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));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);
