TGViewer
Channel Public Channel
JavaScript

JavaScript

@javascript

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
Subscribers
31.1K
Photos
1.2K
Videos
10
Links
895

Showing posts older than #3064 · Back to latest

Older Posts 20 shown
Post #3063 2.81K
  • 🔥 4
  • 👍 2
  • ❤ 1
Post #3062 2.72K
CHALLENGE


const handler = {
get(target, prop, receiver) {
if (prop === 'fullName') {
return `${Reflect.get(target, 'firstName', receiver)} ${Reflect.get(target, 'lastName', receiver)}`;
}
return Reflect.get(target, prop, receiver);
},
set(target, prop, value, receiver) {
if (typeof value !== 'string') {
return false;
}
return Reflect.set(target, prop, value.trim(), receiver);
},
has(target, prop) {
return prop.startsWith('_') ? false : Reflect.has(target, prop);
}
};

const person = new Proxy({ firstName: ' Clara', lastName: 'Oswald ', _secret: 'hidden' }, handler);
person.firstName = ' Clara';
person.lastName = ' Oswald';

console.log(person.fullName);
console.log('_secret' in person);
console.log(Reflect.ownKeys(person).length);
  • 🔥 8
  • ❤ 5
  • 🤔 3
  • 👍 2
Post #3061 2.74K
  • 👍 6
  • ❤ 2
Post #3060 2.79K
CHALLENGE

const inventory = {
apples: 5,
bananas: 12,
cherries: 0,
dates: 8,
};

const result = Object.entries(inventory)
.filter(([_, qty]) => qty > 0)
.reduce((acc, [fruit, qty]) => {
acc[fruit] = qty * 2;
return acc;
}, {});

const keys = Object.keys(result);
const values = Object.values(result);

console.log(keys.length, values.reduce((sum, v) => sum + v, 0));
  • 👍 7
  • ❤ 2
  • 🔥 2
Post #3059 2.88K
👀 Solid v2.0.0 Beta: The <Suspense> is Over

After a long experimental phase, Solid 2.0’s first beta lands with first-class async support where computations can return Promises or async iterables, and the reactive graph suspends and resumes around them natively. <Suspense> is retired in favor of <Loading> for initial renders, and mutations get a first-class action() primitive with optimistic support. For existing users the breaking changes are substantial, but there’s a migration guide.

Ryan Carniato
  • ❤ 5
  • 👍 5
  • 🔥 4
Post #3058 2.5K
  • ❤ 6
  • 👍 1
Post #3057 2.67K
CHALLENGE

class AppError extends Error {
constructor(message, code) {
super(message);
this.name = "AppError";
this.code = code;
}
}

function riskyOperation(value) {
if (value === null) throw new AppError("Null value", 404);
if (typeof value !== "number") throw new TypeError("Not a number");
if (value < 0) throw new RangeError("Negative value");
return value * 2;
}

const inputs = [42, null, "hello", -5];
const results = inputs.map((input) => {
try {
return riskyOperation(input);
} catch (err) {
if (err instanceof AppError) return `AppError:${err.code}`;
if (err instanceof TypeError) return `TypeError`;
if (err instanceof RangeError) return `RangeError`;
return `UnknownError`;
}
});

console.log(results);
  • ❤ 5
  • 👍 2
  • 🔥 2
Post #3056 2.69K
  • ❤ 5
  • 🔥 1
  • 🤔 1
Post #3055 2.82K
CHALLENGE


const transactions = [
{ id: 1, type: "credit", amount: 200 },
{ id: 2, type: "debit", amount: 50 },
{ id: 3, type: "credit", amount: 150 },
{ id: 4, type: "debit", amount: 30 },
{ id: 5, type: "credit", amount: 100 },
];

const result = transactions
.filter(tx => tx.type === "credit")
.map(tx => ({ ...tx, amount: tx.amount * 1.1 }))
.reduce((acc, tx) => acc + tx.amount, 0);

console.log(result.toFixed(2));
  • 🔥 4
Post #3054 2.92K
  • ❤ 6
  • 🤣 1
Post #3053 2.93K
CHALLENGE

const product = {
name: "Laptop",
price: 1299,
stock: 42,
discount: 0,
category: "Electronics",
};

const filtered = Object.entries(product)
.filter(([key, value]) => Boolean(value))
.reduce((acc, [key, value]) => {
acc[key] = value;
return acc;
}, {});

console.log(Object.keys(filtered).length);
console.log(Object.values(filtered).includes(0));
console.log(Object.keys(filtered).join(", "));
  • 👍 5
  • 🔥 2
Post #3052 2.88K
  • 👍 3
  • ❤ 1
Post #3051 2.66K
CHALLENGE

const engine = {
type: "V8",
displacement: 4.0,
getInfo() {
return `${this.type} - ${this.displacement}L`;
},
turbo: {
boost: 12,
getBoost() {
return `${this.type ?? "Unknown"} boosted at ${this.boost} psi`;
},
},
};

const detached = engine.getInfo;
const turboInfo = engine.turbo.getBoost;

console.log(engine.getInfo());
console.log(engine.turbo.getBoost());
console.log(turboInfo());
  • ❤ 7
  • 🔥 5
Post #3050 2.94K
😆
  • 🤣 25
  • ❤ 5
  • 👍 4
  • 🔥 3
Post #3049 2.72K
  • 👍 4
  • ❤ 1
Post #3048 2.82K
CHALLENGE

class Registry {
static #cache = new Map();
static #instanceCount = 0;
static defaultTTL;

static {
Registry.#cache.set("base", { value: 42, active: true });
Registry.#instanceCount = 1;
Registry.defaultTTL = 3600;
console.log("Static block 1:", Registry.#instanceCount, Registry.defaultTTL);
}

static {
const base = Registry.#cache.get("base");
Registry.#cache.set("derived", { value: base.value * 2, active: false });
Registry.#instanceCount++;
console.log("Static block 2:", Registry.#instanceCount, Registry.#cache.size);
}

static getSnapshot() {
return [...Registry.#cache.entries()]
.map(([k, v]) => `${k}:${v.value}`)
.join(", ");
}
}

console.log("Snapshot:", Registry.getSnapshot());
console.log("TTL:", Registry.defaultTTL);
  • ❤ 6
  • 👍 4
Post #3047 2.66K
🌟 Bun v1.3.10 Released: A Surprisingly Big Update

Bun’s REPL has been completely rewritten with many improvements (both practical and cosmetic), there's a --compile --target=browser option for building self-contained HTML files with all JS, CSS, and assets included (ideal for simple JS-powered single page apps), full support for TC39 stage 3 ES decorators, a faster event loop, barrel import optimization, and more.

Jarred Sumner
  • 👍 6
  • 🔥 6
  • ❤ 3
  • 🤩 1
Post #3046 2.63K
  • 👍 4
  • ❤ 2
  • 🔥 2
Post #3045 2.96K
CHALLENGE



const a = 10n ** 3n;
const b = BigInt(Number.MAX_SAFE_INTEGER) + 1n;
const c = b - BigInt(Number.MAX_SAFE_INTEGER);

const results = {
power: a,
safe: c,
type: typeof a,
equal: 10n == 10,
strict: 10n === 10,
};

console.log(
results.power,
results.safe,
results.type,
results.equal,
results.strict
);
  • ❤ 3
  • 👍 3
  • 🔥 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →