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 443 suscriptores, ocupando la posición 4 384 en la categoría Tecnologías y Aplicaciones y el puesto 13 551 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 443 suscriptores.

Según los últimos datos del 13 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -193, y en las últimas 24 horas de 21, 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.27%. 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 972 visualizaciones. En el primer día suele acumular 796 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 14 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 443
Suscriptores
+2124 horas
-537 días
-19330 días
Archivo de publicaciones
CHALLENGE
const target = { name: 'Sarah', age: 25 };
const handler = {
  get(obj, prop) {
    if (prop === 'toString') {
      return () => `Person: ${obj.name}`;
    }
    return Reflect.get(obj, prop);
  },
  has(obj, prop) {
    return prop !== 'age' && Reflect.has(obj, prop);
  }
};
const proxy = new Proxy(target, handler);
console.log(proxy.name);
console.log('age' in proxy);
console.log(proxy.toString());

What is the output?
Anonymous voting

CHALLENGE
class StateMachine {
  constructor() {
    this.state = 'idle';
    this.transitions = {
      idle: { start: 'running', reset: 'idle' },
      running: { pause: 'paused', stop: 'stopped' },
      paused: { resume: 'running', stop: 'stopped' },
      stopped: { reset: 'idle' }
    };
  }
  
  transition(action) {
    const nextState = this.transitions[this.state]?.[action];
    if (nextState) {
      this.state = nextState;
      return true;
    }
    return false;
  }
}

const sm = new StateMachine();
console.log(sm.transition('start'));
console.log(sm.state);
console.log(sm.transition('reset'));
console.log(sm.state);

😆

What is the output?
Anonymous voting

CHALLENGE
class ValidationError extends Error {
  constructor(message, code) {
    super(message);
    this.name = 'ValidationError';
    this.code = code;
  }
}

function processData(data) {
  try {
    if (!data) throw new ValidationError('Data required', 'MISSING_DATA');
    return data.toUpperCase();
  } catch (error) {
    if (error instanceof ValidationError) {
      console.log(`${error.name}: ${error.message} (${error.code})`);
    } else {
      console.log(`Unexpected error: ${error.message}`);
    }
  }
}

processData(null);
processData(42);

What is the output?
Anonymous voting

CHALLENGE
class CustomError extends Error {
  constructor(message, code) {
    super(message);
    this.name = 'CustomError';
    this.code = code;
  }
}

try {
  throw new CustomError('Something went wrong', 500);
} catch (error) {
  console.log(error instanceof Error);
  console.log(error instanceof CustomError);
  console.log(error.name);
  console.log(typeof error.code);
}

What is the output?
Anonymous voting

CHALLENGE
let cache = new Map();
let obj = { name: 'Emma', age: 28 };

function memoize(fn) {
  return function(...args) {
    const key = JSON.stringify(args);
    if (cache.has(key)) {
      console.log('Cache hit');
      return cache.get(key);
    }
    const result = fn.apply(this, args);
    cache.set(key, result);
    return result;
  };
}

const process = memoize((data) => {
  console.log('Processing:', data.name);
  return data.age * 2;
});

process(obj);
process(obj);
obj.age = 30;
process(obj);
console.log('Cache size:', cache.size);

⛽️ npm-check-updates 18.2: Update package.json Dependencies to Latest Versions That is, as opposed to the specified versions.
⛽️ npm-check-updates 18.2: Update package.json Dependencies to Latest Versions That is, as opposed to the specified versions. Includes a handy -i interactive mode so you can look at potential upgrades and then opt in to them one by one. v18.2 adds a ‘cooldown’ feature to help protect against supply chain attacks by requiring package versions to be published at least the given number of days before considering them for upgrade. Raine Revere

What is the output?
Anonymous voting

CHALLENGE
const pattern = /(?<=\d)(?=(?:\d{3})+(?!\d))/g;
const str = '1234567890';
const result = str.replace(pattern, ',');
console.log(result);

const regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/;
const tests = ['Password1', 'password', 'PASSWORD1', 'Pass1'];
tests.forEach(test => {
  console.log(`${test}: ${regex.test(test)}`);
});

const capture = /([a-z]+)(\d+)/g;
const text = 'item123 product456';
const matches = [...text.matchAll(capture)];
console.log(matches[1][1]);

🥳 IINA is a popular, open-source media player for macOS and it has just added a JavaScript-based plugin system to let users
🥳 IINA is a popular, open-source media player for macOS and it has just added a JavaScript-based plugin system to let users extend its functionality.

What is the output?
Anonymous voting

CHALLENGE
const sym1 = Symbol('test');
const sym2 = Symbol('test');
const obj = {
  [sym1]: 'value1',
  [sym2]: 'value2',
  regular: 'value3'
};

const sym3 = Symbol.for('global');
const sym4 = Symbol.for('global');

console.log(sym1 === sym2);
console.log(sym3 === sym4);
console.log(Object.keys(obj).length);
console.log(Object.getOwnPropertySymbols(obj).length);

⛽️ Massive Supply Chain Attack Hijacks ctrl/tinycolor With 2 Million Downloads and Other 40 NPM Packages A sophisticated and
⛽️ Massive Supply Chain Attack Hijacks ctrl/tinycolor With 2 Million Downloads and Other 40 NPM Packages A sophisticated and widespread supply chain attack has struck the NPM ecosystem, compromising the popular @ctrl/tinycolor package, which is downloaded over 2 million times per week. Guru Baran

What is the output?
Anonymous voting

CHALLENGE
const cache = new Map();

function createHandler(id) {
  const data = { id, value: new Array(1000).fill(id) };
  cache.set(id, data);
  
  return function(action) {
    if (action === 'get') return data;
    if (action === 'clear') cache.delete(id);
  };
}

const handler1 = createHandler('user-1');
const handler2 = createHandler('user-2');

handler1('clear');
console.log(cache.size);
console.log(handler1('get').id);

🤩 Fetch Streams are Great, But Not for Measuring Upload/Download Progress Fetch upload streams seem well-suited for tracking
🤩 Fetch Streams are Great, But Not for Measuring Upload/Download Progress Fetch upload streams seem well-suited for tracking the progress of uploads, but as Jake notes “just because stuff is taken from the stream doesn’t mean it’s yet been sent over the network”. He also touches on an issue relating to measuring download progress using response streams. Jake Archibald