JavaScript
31.4K subscribers
1.18K photos
10 videos
33 files
858 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

function makeCounter(start = 0, step = 1) {
let count = start;
const history = [];

return {
increment() {
count += step;
history.push(count);
return this;
},
decrement() {
count -= step;
history.push(count);
return this;
},
getHistory: () => history,
getCount: () => count,
};
}

const counter = makeCounter(10, 3);
counter.increment().increment().decrement();

console.log(counter.getCount());
console.log(counter.getHistory());
👍31
👍42
CHALLENGE


const inventory = new Map([
["sword", { qty: 3, value: 150 }],
["shield", { qty: 1, value: 200 }],
["potion", { qty: 5, value: 30 }],
]);

const upgraded = new Map(
[...inventory.entries()]
.filter(([, item]) => item.value >= 100)
.map(([key, item]) => [key, { ...item, value: item.value * 2 }])
);

console.log(upgraded.size);
console.log(upgraded.get("sword").value);
console.log(upgraded.has("potion"));
console.log([...upgraded.keys()].join(", "));
2🔥2👍1
CHALLENGE

const log = [];

const handler = {
set(target, key, value) {
log.push(`set:${key}=${value}`);
target[key] = value;
return true;
},
get(target, key) {
log.push(`get:${key}`);
return target[key];
}
};

const state = new Proxy({}, handler);

state.count = 0;
state.count = state.count + 1;
state.count = state.count + 1;

console.log(log.join(" | "));
3👍2🔥1
Somewhere in Yerevan 🇦🇲😆
Please open Telegram to view this post
VIEW IN TELEGRAM
33🤣7👍3🔥1
CHALLENGE

const obj = {
name: "Nikola",
greetArrow: () => {
return `Hello, ${this?.name ?? "stranger"}!`;
},
greetRegular() {
return `Hello, ${this.name}!`;
},
greetNested() {
const inner = () => `Hi, ${this.name}!`;
return inner();
}
};

console.log(obj.greetArrow());
console.log(obj.greetRegular());
console.log(obj.greetNested());
👍63🔥1
CHALLENGE

const a = 9007199254740991n;
const b = BigInt(Number.MAX_SAFE_INTEGER);

console.log(a === b);
console.log(a + 1n);
console.log(typeof a);
console.log(a === 9007199254740991);
👍4🔥1
CHALLENGE


const config = {
timeout: 0,
retries: null,
host: "",
port: undefined,
debug: false,
};

const timeout = config.timeout ?? 3000;
const retries = config.retries ?? 5;
const host = config.host ?? "localhost";
const port = config.port ?? 8080;
const debug = config.debug ?? true;

console.log(timeout, retries, host, port, debug);
7👍3🔥1
👀 Hocuspocus 4: Add Real-Time Collaboration to Any App

A plug-and-play real-time collaboration backend based on Yjs so you can quickly and safely wire up multi-user collaborative experiences into a JavaScript app. It runs on Node, Bun, Deno, or Cloudflare Workers. GitHub repo.

Tiptap
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥74👍2
CHALLENGE

"use strict";

function createCounter() {
let count = 0;

return {
increment() { count++; },
get value() { return count; },
toString() { return `Counter: ${count}`; }
};
}

const counter = createCounter();
counter.increment();
counter.increment();
counter.increment();

try {
counter.value = 99;
} catch (e) {
console.log(`${e.constructor.name}: ${counter}`);
}
3
📊 Plotly 3.6: The Declarative Graphing Library

A long-standing library, also widely used in the Python and R ecosystems, that offers over 50 visualization types, from basic charts and graphs to maps, plots, and heatmaps.

Plotly, Inc.
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥3👍2
CHALLENGE


function Animal(name) {
this.name = name;
}

Animal.prototype.speak = function () {
return `${this.name} makes a sound.`;
};

function Dog(name, breed) {
Animal.call(this, name);
this.breed = breed;
}

Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;

Dog.prototype.speak = function () {
return `${this.name} barks!`;
};

const dog = new Dog("Rex", "Labrador");

console.log(dog.speak());
console.log(dog instanceof Dog);
console.log(dog instanceof Animal);
console.log(Object.getPrototypeOf(dog) === Animal.prototype);
👍1
Programming language legend 😉 Anders Hejlsberg was on The Pragmatic Engineer talking about his background, work on TypeScript, JavaScript's strengths and weaknesses, and how he uses AI.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🔥2
CHALLENGE

const person = {
name: "Marcus",
greet: function () {
const inner = () => `Hello, I am ${this.name}`;
return inner();
},
greetArrow: () => {
return `Hello, I am ${this.name}`;
},
};

const detached = person.greet;

console.log(person.greet());
console.log(person.greetArrow());
console.log(detached?.());
👍2