en
Feedback
JavaScript

JavaScript

Open in Telegram

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

Show more

๐Ÿ“ˆ Analytical overview of Telegram channel JavaScript

Channel JavaScript (@javascript) in the English language segment is an active participant. Currently, the community unites 31 441 subscribers, ranking 4 377 in the Technologies & Applications category and 13 573 in the India region.

๐Ÿ“Š Audience metrics and dynamics

Since its creation on ะฝะตะฒั–ะดะพะผะพ, the project has demonstrated rapid growth, gathering an audience of 31 441 subscribers.

According to the latest data from 11 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -198 over the last 30 days and by 17 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 6.20%. Within the first 24 hours after publication, content typically collects 2.53% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 1 949 views. Within the first day, a publication typically gains 797 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 7.
  • Thematic interests: Content is focused on key topics such as javascript, console.log(gen.next().value, processdata, remix, acc.

๐Ÿ“ Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
โ€œ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โ€

Thanks to the high frequency of updates (latest data received on 12 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

31 441
Subscribers
+1724 hours
-587 days
-19830 days
Posts Archive
What is the output?
Anonymous voting

CHALLENGE
function processData(value) {
  let result = "start";

  try {
    result += " -> try";
    if (value === null) throw new TypeError("Null value");
    if (value < 0) throw new RangeError("Negative value");
    result += " -> success";
    return result;
  } catch (e) {
    result += ` -> catch(${e.constructor.name})`;
    return result;
  } finally {
    result += " -> finally";
    console.log(result);
  }
}

console.log(processData(null));

๐Ÿ‘€ Anime.js 4.4: The Flexible JavaScript Animation Engine At ten years old, the โ€˜animate anything from JavaScriptโ€™ library co
๐Ÿ‘€ Anime.js 4.4: The Flexible JavaScript Animation Engine At ten years old, the โ€˜animate anything from JavaScriptโ€™ library continues to get even better with a new scrambleText effect and auto-grid layout mode for stagger grids. The docs for Anime are truly top-tier and packed with examples. Julian Garnier

What is the output?
Anonymous voting

CHALLENGE
const compose = (...fns) => (x) => fns.reduceRight((acc, fn) => fn(acc), x);
const pipe = (...fns) => (x) => fns.reduce((acc, fn) => fn(acc), x);

const double = (x) => x * 2;
const addTen = (x) => x + 10;
const square = (x) => x ** 2;
const negate = (x) => -x;

const transform1 = compose(negate, square, addTen, double);
const transform2 = pipe(double, addTen, square, negate);

const memoize = (fn) => {
  const cache = new Map();
  return (x) => {
    if (!cache.has(x)) cache.set(x, fn(x));
    return cache.get(x);
  };
};

const memoTransform1 = memoize(transform1);

console.log(transform1(3));
console.log(transform2(3));
console.log(memoTransform1(3) === transform1(3));

๐Ÿ‘€ Remix 3 Enters Beta โ€” It's No Longer a React Framework Remix has quite the back story. Created by the duo behind React Rou
๐Ÿ‘€ Remix 3 Enters Beta โ€” It's No Longer a React Framework Remix has quite the back story. Created by the duo behind React Router in 2020 and seen as an alternative to Next.js, Remix was acquired by Shopify in 2022 and its core ideas folded into React Router v7 in 2024. Now, a new direction: a full-stack, web standards-first framework with its own UI component model andโ€ฆ no React. Michael Jackson (Remix)

What is the output?
Anonymous voting

CHALLENGE

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

class ConnectionError extends DatabaseError {
  constructor(host) {
    super(`Failed to connect to ${host}`, 503);
    this.name = "ConnectionError";
    this.host = host;
  }
}

const err = new ConnectionError("db.server.io");

console.log([
  err instanceof ConnectionError,
  err instanceof DatabaseError,
  err instanceof Error,
  err.name,
  err.code,
  err.message,
].join(" | "));

๐Ÿ˜ฎ html-to-text 10.0: Advanced HTML to Text Converter Uses a variety of techniques to convert even complex HTML into plain te
๐Ÿ˜ฎ html-to-text 10.0: Advanced HTML to Text Converter Uses a variety of techniques to convert even complex HTML into plain text (but with some formatting, such as for tables). v10 brings the project up to modern standards. KillyMXI

What is the output?
Anonymous voting

CHALLENGE
const items = [
  { name: "banana", price: 1.5, qty: 10 },
  { name: "apple",  price: 1.5, qty: 5  },
  { name: "cherry", price: 3.0, qty: 8  },
  { name: "date",   price: 2.0, qty: 8  },
];

const sorted = [...items].sort((a, b) => {
  if (a.price !== b.price) return a.price - b.price;
  if (a.qty   !== b.qty)   return b.qty   - a.qty;
  return a.name.localeCompare(b.name);
});

console.log(sorted.map(i => `${i.name}:${i.qty}`).join(", "));

๐ŸคŸ Node.js 26.0 (Current) Released It's here! Complete with the Temporal API enabled by default, V8 14.6 (say hello to map โ€˜u
๐ŸคŸ Node.js 26.0 (Current) Released It's here! Complete with the Temporal API enabled by default, V8 14.6 (say hello to map โ€˜upsertโ€™ methods like Map.prototype.getOrInsert() and iterator sequencing with Iterator.concat()), plus Undici 8. v26 is the โ€˜Currentโ€™ cutting-edge release until October when it gets promoted to LTS. Rafael Gonzaga

What is the output?
Anonymous voting

CHALLENGE
const values = [0.1 + 0.2, NaN, Infinity, -0, 42.6789];

const results = values.map((v, i) => {
  if (i === 0) return Number.isInteger(v) + " | " + v.toFixed(2);
  if (i === 1) return Number.isFinite(v) + " | " + Number.isNaN(v);
  if (i === 2) return Number.isFinite(v) + " | " + Number.MAX_SAFE_INTEGER;
  if (i === 3) return Object.is(v, -0) + " | " + (v === 0);
  if (i === 4) return v.toFixed(2) + " | " + v.toPrecision(4);
});

results.forEach(r => console.log(r));

What is the output?
Anonymous voting

CHALLENGE
const ops = {
  add: (a, b) => a + b,
  subtract: (a, b) => a - b,
  multiply: (a, b) => a * b,
  divide: (a, b) => b !== 0 ? a / b : NaN,
};

const pipeline = (...fns) => (value) => fns.reduce((acc, fn) => fn(acc), value);

const double  = (x) => ops.multiply(x, 2);
const addTen  = (x) => ops.add(x, 10);
const halve   = (x) => ops.divide(x, 2);
const subtractThree = (x) => ops.subtract(x, 3);

const transform = pipeline(double, addTen, halve, subtractThree);

const results = [5, 0, -4].map(transform);
console.log(results);

What is the output?
Anonymous voting

CHALLENGE

const inventory = new Map([
  ["sword", { quantity: 3, weight: 15 }],
  ["shield", { quantity: 1, weight: 25 }],
  ["potion", { quantity: 10, weight: 2 }],
]);

inventory.set("bow", { quantity: 2, weight: 8 });
inventory.delete("shield");

const totalWeight = [...inventory.entries()].reduce((acc, [item, { quantity, weight }]) => {
  return acc + quantity * weight;
}, 0);

const heaviestItem = [...inventory.entries()].reduce((max, [item, data]) =>
  data.weight > max.weight ? { name: item, ...data } : max,
  { name: "", weight: 0 }
);

console.log(inventory.size, totalWeight, heaviestItem.name);

What is the output?
Anonymous voting

CHALLENGE
const delay = (ms, val) => new Promise(res => setTimeout(res, ms, val));

async function pipeline(...fns) {
  return async (input) => {
    let result = input;
    for (const fn of fns) {
      result = await fn(result);
    }
    return result;
  };
}

const double  = async (x) => delay(10, x * 2);
const addTen  = async (x) => delay(10, x + 10);
const square  = async (x) => delay(10, x ** 2);

(async () => {
  const process = await pipeline(double, addTen, square);
  const output  = await process(3);
  console.log(output);
})();

JavaScript - Statistics & analytics of Telegram channel @javascript