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 136 suscriptores, ocupando la posición 4 163 en la categoría Tecnologías y Aplicaciones y el puesto 12 809 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 136 suscriptores.

Según los últimos datos del 20 septiembre, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -114, y en las últimas 24 horas de -3, 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.21%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 2.30% de reacciones respecto al total de suscriptores.
  • Alcance de las publicaciones: Cada publicación recibe en promedio 1 933 visualizaciones. En el primer día suele acumular 715 visualizaciones.
  • Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 4.
  • 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 21 septiembre, 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 136
Suscriptores
-324 horas
-327 días
-11430 días
Archivo de publicaciones
What is the output?
Anonymous voting

CHALLENGE
const data = '{"name":"Sarah","age":25,"skills":["JavaScript","Python"]}'
const parsed = JSON.parse(data)
const stringified = JSON.stringify(parsed, null, 0)
const reparsed = JSON.parse(stringified)

try {
  const invalid = '{name:"John","incomplete":}'
  JSON.parse(invalid)
} catch (e) {
  console.log(e.name)
}

console.log(typeof parsed.age)
console.log(reparsed.skills.length)
console.log(JSON.stringify({a: undefined, b: null, c: 0}))

😮 Render.js: A Raytracing Renderer with RenderMan Format Support Created at Pixar in the 80s, the RenderMan Interface Specif
😮 Render.js: A Raytracing Renderer with RenderMan Format Support Created at Pixar in the 80s, the RenderMan Interface Specification was an early API for building 3D scenes. Anders has been building a Node-based, 90s-style renderer for the format “as a stroll down amnesia lane” in pure JavaScript. Anders Brownworth

👀 Umami 3.0: A Self-Hosted, Privacy-Focused Google Analytics Alternative Think something like Plausible or Google Analytics,
👀 Umami 3.0: A Self-Hosted, Privacy-Focused Google Analytics Alternative Think something like Plausible or Google Analytics, but built in Node and ready for you to host yourself. Here’s the full feature list. MIT licensed but also available as a paid hosted service. Umami Software, Inc.

What is the output?
Anonymous voting

CHALLENGE
const obj = { count: 0 };
const arr = [obj, obj, obj];

function increment(item) {
  item.count++;
  return item;
}

const results = arr.map(increment);
console.log(obj.count);
console.log(results[0] === results[1]);
console.log(results.length);
console.log(arr[0].count);

🤟 Node.js Security Best Practices Did you know the Node.js project maintains a page about security best practices organized
🤟 Node.js Security Best Practices Did you know the Node.js project maintains a page about security best practices organized around how to mitigate ten of the most significant vectors? Topics include networking weaknesses, timing attacks, supply chain attacks, and the monkey patching of intrinsics. Node Documentation

What is the output?
Anonymous voting

CHALLENGE
class EventEmitter {
  constructor() {
    this.events = {};
  }
  
  on(event, callback) {
    this.events[event] = this.events[event] || [];
    this.events[event].push(callback);
    return this;
  }
  
  emit(event, data) {
    if (this.events[event]) {
      this.events[event].forEach(cb => cb(data));
    }
    return this;
  }
}

class Logger {
  log(msg) { console.log(`[LOG]: ${msg}`); }
}

class DataProcessor {
  constructor(emitter, logger) {
    this.emitter = emitter;
    this.logger = logger;
    this.emitter.on('process', (data) => {
      this.logger.log(data.toUpperCase());
    });
  }
  
  process(data) {
    this.emitter.emit('process', data);
  }
}

const emitter = new EventEmitter();
const logger = new Logger();
const processor = new DataProcessor(emitter, logger);

processor.process('hello world');
emitter.emit('process', 'composition rocks');

What is the output?
Anonymous voting

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

try {
  throw new CustomError('Something went wrong');
} catch (e) {
  console.log(e instanceof Error);
  console.log(e instanceof CustomError);
  console.log(e.constructor.name);
  console.log(e.name);
}

What is the output?
Anonymous voting

CHALLENGE
const wm = new WeakMap();
const obj1 = { name: 'first' };
const obj2 = { name: 'second' };
const obj3 = obj1;

wm.set(obj1, 'value1');
wm.set(obj2, 'value2');
wm.set(obj3, 'value3');

console.log(wm.get(obj1));
console.log(wm.get(obj2));
console.log(wm.get(obj3));
console.log(wm.has(obj1));
console.log(wm.size);

What is the output?
Anonymous voting

CHALLENGE
function createCounter() {
  let count = 0;
  return {
    increment: () => ++count,
    decrement: () => --count,
    getValue: () => count
  };
}

const counter1 = createCounter();
const counter2 = createCounter();
counter1.increment();
counter1.increment();
counter2.increment();
console.log(counter1.getValue(), counter2.getValue());
counter1.decrement();
console.log(counter1.getValue(), counter2.getValue());

What is the output?
Anonymous voting

CHALLENGE
const moduleMap = new Map();

async function loadModule(name) {
  if (moduleMap.has(name)) {
    return moduleMap.get(name);
  }
  
  const module = await Promise.resolve({
    default: () => `Module ${name} loaded`,
    version: '1.0.0'
  });
  
  moduleMap.set(name, module);
  return module;
}

loadModule('auth').then(m => console.log(m.default()));
loadModule('auth').then(m => console.log(m.version));
loadModule('db').then(m => console.log(m.default()));

What is the output?
Anonymous voting

CHALLENGE
const user = {
  profile: {
    settings: {
      theme: 'dark'
    }
  }
};

const getTheme = (obj) => obj?.profile?.settings?.theme ?? 'light';
const getLanguage = (obj) => obj?.profile?.settings?.language ?? 'en';
const getNotifications = (obj) => obj?.profile?.notifications?.enabled ?? true;

console.log(getTheme(user));
console.log(getLanguage(user));
console.log(getNotifications(user));
console.log(getTheme(null));

And there is another fork 😆