es
Feedback
JavaScript

JavaScript

Ir al canal en 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

Mostrar más

📈 Análisis del canal de Telegram JavaScript

El canal JavaScript (@javascript) en el segmento lingüístico de Inglés es un actor destacado. Actualmente la comunidad reúne a 31 441 suscriptores, ocupando la posición 4 377 en la categoría Tecnologías y Aplicaciones y el puesto 13 573 en la región India.

📊 Métricas de audiencia y dinámica

Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 31 441 suscriptores.

Según los últimos datos del 11 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -198, y en las últimas 24 horas de 17, conservando un alto alcance.

  • Estado de verificación: No verificado
  • Tasa de interacción (ER): El promedio de interacción de la audiencia es 6.20%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 2.53% de reacciones respecto al total de suscriptores.
  • Alcance de las publicaciones: Cada publicación recibe en promedio 1 949 visualizaciones. En el primer día suele acumular 797 visualizaciones.
  • Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 7.
  • Intereses temáticos: El contenido se centra en temas clave como javascript, console.log(gen.next().value, processdata, remix, acc.

📝 Descripción y política de contenido

El autor describe el recurso como un espacio para expresar opiniones subjetivas:
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

Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 12 junio, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.

31 441
Suscriptores
+1724 horas
-587 días
-19830 días
Archivo de publicaciones
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);
})();